Skip to main content

Full text of "Commodore Computer Club 74"

See other formats


N. 74 - 25 Maggio 199' > - Sped. Abb. Post. Gr 111/70 - CR - Distr.: Farri u 


* Sveglia 
col 64/128 


LJn orologic 
^esclusive 
H dal tue 

Peoni potei 


Amiga 


50 pagine 
di software 
e recensioni 


Tutte le finestre 
che volete 


Commodore 



Gratuito. 

Vantaggioso. 

Interessante. 

Raramente Capita Di poter 
associare Queste Qualità’ 

Ad Un Servizio. 

personal Computer Annuncia 

UN’INIZIATIVA Con tutte 

queste Caratteristiche. 

Dal 2 Aprile Sara’ Operativa 
bbsystems, la Nuova Banca 
dati Promossa da Systems 

EDITORIALE. 

Un Servizio Gratuito, 
Vantaggioso, interessante. 




t.a rinvia rtinli di \hind 4 «•himmmUm r 


Il CI 28 va in pensione 
Anatomia di una sprotezione 
Tutte le finestre che volete 
Per chi vuole collaborare 
Schermo su schermo 
Recensioni: Digipaint III 
I disegni di Fra’ Martino 
Prove: I compressori di Amiga 
Inserti speciali per gli utenti 
Commodore 
Campus C64 - CI 28 
Campus Amiga 
Speciale Videogames: 

688 Sub attack 
Budokan 
Space Harrier II 
Tennis cup 

It cames from thè desert 
Sim city 

Maniac mansion 
Ninja warrior 
Iron lord 

Mistery of thè mummy 
Weird dreams 
Snoppy 
West phaser 


RUBRICHE 


4 EDITORIALE 


10 SYSTEMS EDITORIALE 
PER TE 


12 LA POSTA DEL 128 


60 LA POSTA DI AMIGA 


91 G0IDA ALL'ACQUISTO 


Direttore: Alessandro de Simone 
Coordinatore: Marco Miotti 

Redazione/collaboratori: Mauro lussinoli, Luca Viola, Carlo D'Ippolito, Donato De Luca, Paolo Agostini. Davide Ardizzone. Claudio 
Baiocchi. Luigi Caligari, Sergio Camici. Umberto Colapiccbioni, Laura & Miria Colombo. Valer» Ferri, Simona Locati, Michele Maggi, 
Giancarlo Mariani. Clizio Merli, Marco Mietta, Marco Miotti, Oscar Mocda, Roberto Morassi, Guido Pagani, Antonio Pastorelli, Domenico 
Pavone, Armando Sforzi, Sonja e Patrizia Scharrer, Dario Pistella, Fab» Sorgalo, Valentino Spataro, Danilo Toma, Franco Rodefla, 
Stafano Simonelli 

Direzione, pubblicità: Via Mosè 22 - 20090 Opera (MI) - Tel. 02/55500310 - Fax 02/57603039 - Redazione: Tel. 02/55500310 
Pubblicità: Milano: Leandro Nencioni (direttore vendite), * Via Mosè 22 - 20090 Opera (MI) - Tel. 02/55500310 

• Emilia Romagna: Spazio E • P.zza Roosevelt, 4 - 40123 Bologna - Tel. 051/236979 

• Toscana, Marche, Umbria: Mercurio srl - Via Rodari. 9 - San Giovanni Vafdarno (AR) - Tel. 055^947444 

• Lazio, Campania: Spazio Nuovo • Via P. Foscari, 70 - 00139 Roma - Tel. 06/81 09679 
Abbonamenti: Liliana Spina 

Arretrati e software: Opera, Via Mosè. 22 - Tel. 02/55500310 - Sig.ra Lucia Dominoni (il servizio è operativo nelle ore pomeridiane.) 
Tariffe: prezzo per copia L. 6000. Abbonamento annuo (1 1) fascicoli L. 60.000. Estero il doppio. 

Abbonamento cumulativo alle riviste Computer e Commodore Computer Club L. 100.000 

I versamneti vanno indirizzati a: SYSTEMS EDITORIALE Srl mediante assegno bancario o utilizzando il c/c postale n. 37952207 
Composizione, impaginazione a video e fotolito: Systems Editoriale Srl. 

Stampa: Systems Editoriale/La Litografica Srl - CUGGIONO (MI) 

Registrazioni: Tribunale di Milano n. 370 del 2/10/82 - Direttore Responsabile: Michele Di Pisa 
Sped. in abb. post. gr. Ili - Pubblicità inferiore al 70% 

Distributore.: Panini - Milano 

Periodici Systems. Banca Oggi - Commodore Club (disco) - Commodore Computer Club - Commodore Computer Club (disco 
produzione tedesca) • Computer - Computer disco • Electronic Mass Media Age - Hospital Management - Jonathan - Nursing ’90 - Pc 
Programm (disco) - Personal Computer - Software Club (casseta ed. Italiana) - TuttoGatto • Videoteca - VR Videoregistrare 


Amiga 

5Ò pagine 
di software 
e recensioni 


C 64 

Tutte le finestre 
che volete i 


Commodore Computer Club - 3 



EDITORIALE 



IL TELEFONO, LA "SUA" VOCE 

Le opportunità tecnologiche che oggi l’informatica mette a disposizionec 
onsentono notevoli comodità; anzi, le scomodità sono tangibili 

se un servizio telematico viene meno... 

di Alessandro de Simone 


G iorno piovoso di aprile. Sto prepa- 
rando gli ultimi articoli di Commodo- 
re Computer Club, anche se ho mal di 
testa e mi sento le ossa rotte: devo avere 
la febbre. 

Telefono a Marco Miotti dicendo che, 
il giorno dopo, preferisco non venire in 
Redazione per non aggravare il mio sta- 
to di salute e lo prego di mettersi in 
contatto, l’indomani mattina, per riceve- 
re, via modem, gli ultimi articoli; li termi- 
nerò prima di andare a letto. 

Fino a tardi clicko, salvo, stampo, cor- 
reggo, imposto. 

L’ultimo file di Ventura viene registrato 
intorno alla mezzanotte, mentre fuori in- 
furia un temporale. 

Il mattino dopo tento di mettermi in 
contatto con la nostra BBS. 


Tento è un termine inadatto: in effetti 
impreco, mi arrabbio, urlo e guardo lo 
schermo del mio PC che non fa altro che 
inviare, e ricevere, sporcizie di ogni tipo. 

Un successivo contatto "vocale" con 
la Redazione mi conferma che, purtrop- 
po, la linea è "sporca”, forse a causa di 
qualche contatto dovuto alla pioggia in- 
cessante, forse perchè è ora di punta, 
forse perchè, molto più banalmente, sia- 
mo nelle mani della SIP. 

Non mi rimane che coprirmi bene, ca- 
ricare i dischetti, infilarmi in macchina e 
recarmi ad Opera; 30 chilometri per an- 
dare ed altrettanti per tornare: tempo, 
benzina e pazienza persi inutilmente per 
le linee "sporche". 

Non ho riferito l’episodio per lamentar- 
mi, un’ennesima volta, dei servizi SIP, 


ma solo per far riflettere il lettore sull’at- 
tualità tecnologica che abbiamo la fortu- 
na di vivere. Fino a poco tempo fa era 
impensabile effettuare un servizio per 
telefono, nè era immaginabile svolgere 
un lavoro stando seduti comodamente a 
casa propria ed esser costretti ad uscire 
solo in caso di estrema necessità. 

L’utente informatico attuale non può 
fare più a meno della telematica, dei suoi 
servizi, delle sue opportunità di scambio 
dati, programmi ed informazioni in gene- 
rale. Un ulteriore invito ad interessarsi 
dei modem, quindi, giunge più che mai 
opportuno, soprattutto tenendo conto 
del notevole abbassamento dei costi di 
produzione e della conseguente diffusio- 
ne dei modem. 

SIP permettendo... 


4 - Commodore Computer Club 




DIVISILLABE 

Da un po’ di tempo vedo 
che C.C.C. riporta numero- 
si errori di battitura riguar- 
danti la divisione in sillabe. 
Possibile che i redattori 
non si accorgano dei visto- 
si errori in fase di correzio- 
ne delle bozze? 

(da alcune lettere) 


G li errori non sono dovuti 
nè agli autori degli artico- 
li nè ai redattori. Il vero ed 
unico responsabile è, infatti, il 
sistema di videoimpaginazio- 
ne che. benché settato sulla 
lingua italiana, spesso e vo- 
lentieri genera svarioni di 
ogni tipo. 

Durante rimpaginazione, in 
verità, non appena ci accor- 
giamo degli errori provvedia- 
mo a "forzare" la divisione in 
sillabe; purtroppo capita che, 
per esigenze di incolonna- 
menti, alcune lunghezze (di 
righe o di colonne) debbano 
essere in seguito reimpostate 
con la conseguente reimpo- 
stazione globale ed automat- 
ica dell'intero articolo. 

Alcune parole che prima 
dell'operazione erano intere, 
pertanto, vengono stavolta 
divise in sillabe secondo l’er- 
rato algoritmo ed è pratica- 
mente impossibile accorger- 
sene e porre rimedio. 

Il nome del pacchetto 
D.T.P. che usiamo? Meglio 
tacere... 


Posseggo un adattatore te- 
lematico 6499, ma non di- 
spongo di software idoneo 
ad un suo uso più sofistica- 
to. 

Potete aiutarmi a rintrac- 
ciarlo, pubblicando, maga- 
ri, il mio indirizzo in modo 
da realizzare una "rete" di 
utenti 6499? 

Francesco Passera 
Via Ivrea, 8 
10017 Montanaro (To) 



I l modem 6499 non è una 
tavoletta grafica che ha bi- 
sogno indispensabilmente di 
software per funzionare. 

Al suo interno, infatti, di- 
spone già della Rom conte- 
nente il programma per farlo 
funzionare. A questo punto 
basta formare il numero di te- 
lefono e scambiar dati. 

In effetti il 6499 non è l'op- 
timum della comunicazione 
telematica, soprattutto consi- 
derando l’attuale produzione 
di modem. Quando, però, l’a- 
dattatore telematico fu lancia- 
to dalla Commodore (diversi 
anni fa) era uno dei modelli 
più incredibili ed a basso 
prezzo che era possibile pro- 
curarsi. 

Come vedi, comunque, 
non ho difficoltà a pubblicare 
il tuo annuncio. Ti consiglio, 


però, di pensare seriamente 
a cambiar computer dal mo- 
mento che ciò che, oggi, ri- 
sparmi non acquistando un 
elaboratore più potente, lo 
spendi in bollette Sip a causa 
della modesta velocità di ge- 
stione dell’apparecchio. 

FILE-DAIA.SBRQB 
Cercando di caricare un file 
da nastro, con il mio C/64, 
compare il messaggio "File 
data error". Che cosa vuol 
dire? 

(Nunzio Labranca) 

P urtroppo non hai inviato 
nè programma nè file e 
non comunichi nemmeno di 
che tipo di dati si tratta. 

Ritengo, pertanto, che tu 
sia un principiante che, con 


E PER AMIGA? 

Nelle precedenti confezioni di Commodore Compu- 
ter Club abbiamo inserito un dischetto, in omaggio, 
del formato 5.25 pollici. Dal momento che il dischet- 
to è incompatibile con Amiga, gli utenti di questo 
computer hanno protestato presso la Redazione. 
Per venire loro incontro si è quindi deciso di lanciare 
l'offerta speciale "Quattro al prezzo di due". In altre 
parole gli utenti Amiga potranno richiedere, secon- 
do le solite modalità (riportate in altre pagine del 
presente fascicolo) quattro fascicoli arretrati, oppu- 
re quattro dischetti della serie Amigazzetta, pagan- 
do l'importo relativo a due soli numeri (oppure a due 
soli dischetti). 


Commodore Computer Club - 5 




SA LV AVIPEQ H/W 

Vorrei commentare alcune parti del progetto "Salva- 
video hardware" (C.C.C. n. 72). 

Vi si afferma che il transistor BC-109 è usato per 
questioni di sicurezza, allo scopo di evitare un con- 
tatto diretto relè - computer; ritengo, al contrario, 
che il contatto ci sia egualmente perchè uno dei due 
capi è in contatto diretto con la porta tape del C/64. 
C’è da considerare, inoltre, che il relè è formato da 
una bobina avvolta su dì un nucleo magnetico. Ad 
ogni apertura o chiusura dei contatti la corrente 
circola, generando, ai morsetti della bobina, una 
forza elettromotrice auto-indotta che tende ad op- 
porsi alla causa che l’ha generata. Tale sovratensio- 
ne, direttamente proporzionale alla velocità con cui 
varia la corrente, può distruggere II transistor pre- 
sente nel computer. In simili casi, quindi, è bene 
porre un diodo sui morsetti del relè che sarà pola- 
rizzato Inversamente (messo al contrario) proprio 
perchè agisca solo nei transitori. Un fusibile, posto 
a valle del relè, completerebbe la "sicurezza" del 
circuito. 

(Andrea D’Orsi - Udine) 


molta buona volontà, cerca 
disperatamente di supplire al- 
le notevoli carenze del ma- 
nuale allegato alla confezio- 
ne del computer. 

Una trattazione molto ap- 
profondita è stata affrontata 
su molti fascicoli di C.C.C. 

Ti consiglio di studiare, so- 
prattutto, i due inserti pubbli- 
cati in precedenza: mi riferi- 
sco a "Come gestire senza 
problemi i file sequenziali" 
(C.C.C. n. 39); "...e non indur- 
ci nei Syntax error" (C.C.C. n. 
31); "Gli errori dovuti alla ma- 
nipolazione delle stringhe" 
(C.C.C. n. 32). I tre argomenti 
citati occupano, ciascuno, 
l’intero inserto del corrispon- 
dente fascicolo cui si riferi- 
scono. 


C/6 4, VITA MEDIA 

Qual è la vita media di un un 
C/64 tenuto, mediamente, 
acceso 5-6 ore al giorno? 

(Angelo Rinaldi - Castellana ) 

U n computer moderno, co- 
me un qualsiasi apparec- 
chio elettronico attualmente 
prodotto, dovrebbe offrire 
una vita media praticamente 
infinita. 

In realtà, tuttavia, qualcosa 
può accadere a qualche mi- 
nuscolo chip al silicio che, co- 
me ogni cosa terrena, non 
può essere eterno. 

Nè si può immaginare di 
attribuire vite più lunghe a 
computer di marca più presti- 
giosa. 

Il mio C/128-D, tanto per far 
un esempio, è uno dei primi 
esemplari prodotti dalla Com- 
modore. gira egregiamenete 
da molti anni e non mi ha mai 
dato fastidio. 

Invece uno dei mie compu- 
ter Ms-Dos (che, in teoria, do- 
vrebbe risultare più affidabile 
del "giocattolo" C/l 28 sia per- 
chè espressamente "profes- 
sionale". sia perchè di marca 
"prestigiosa") mi sta dando 


seri problemi di Ram e dovrò, 
quanto prima, portarlo a ripa- 
rare. 

Pensa a campare, quindi, e 
nel frattempo tocca ferro... 


MPS-1230 

Ho acquistato una Mps- 
1230, ma non riesco a tro- 
vare un software di scrittu- 
ra in grado dì farla funzio- 
nare. 

(Nevio Tavoni - Pescara) 

M a scherziamo? Un qua- 
lunque sistema di video- 
scrittura ( Easy Script. Geos 
eccetera) per C/64 è in grado 
di gestire la stampante citata. 
E’ molto probabile che le 
istruzioni del software in tuo 
possesso siano incomplete 
(o che l'apparecchio sia difet- 
toso!). 

Procurati i libretti di istruzio- 
ne originali e vedrai che la 
1 230 filerà come un treno. 


MANUALE 
PJLB1F ER1MENT.Q 

Spesso, nel manuale di 
istruzioni allegato al C/64, 
si fa riferimento ad un fan- 
tomatico "Manuale di riferi- 
mento del programmato- 
re". 

Vorrei sapere se è in italia- 
no e dove è possibile acqui- 
starlo. 

(Emanuele Giacometti - Ve- 
nezia) 

I l volume, edito dalla stessa 
Commodore, è in lingua ita- 
liana ed è formato da una mi- 
riade di capitoli relativi al ba- 
sic, al linguaggio macchina, 
alla grafica, al suono, all'har- 
dware, eccetera. 

E’ uno dei volumi più com- 
pleti che esistano, ma altret- 
tanto difficile da trovare se 
non presso librerie molto spe- 
cializzate o per corrisponden- 
za (hai provato a chiedere ai 
nostri inserzionisti che pubbli- 


cano le loro pagine pubblici- 
tarie?). 

BUFFER DI TASTIERA 
Come posso modificare il 
buffer di tastiera (locazione 
649) in modo da gestire più 
di 10 caratteri? 

(Ettore Amanranti - Roma) 

N on è possibile, dal mo- 
mento che l’operazione 
rischierebbe di gestire anche 
altre locazioni che il computer 
utilizza per altri scopi. 


Ma perchè i 10 caratteri 
non ti bastano? Se avessi co- 
municato il problema che re- 
almente vuoi risolvere avrei 
potuto darti una mano; è 
probabile, infatti, che altre 
tecniche, estranee alla mani- 
plazione del byte 649, possa- 
no rendere ottimale la proce- 
dura che intendi portare a ter- 
mine. 

Per quanto riguarda le altre 
domande contenute nella let- 
tera, è stata data una risposte 
in più di una occasione. 



6 - Commodore Computer Club 





Replay 

Finalmente! Una potentissima cartuccia utility+freezer+trainer! 

Inserita nella porta di espansione del vostro Amiga 500, permette di: 

- congelare e salvare su disco un programma caricato in memoria, per poterlo ricaricare quando volete fino a 4 volte più velocemente 

- trovare le "polce" necessarie per ottenere vite infinite nei vostri giochi preferiti 

- modificare e cambiare gli sprites di un gioco, per creare simpatiche versioni personalizzate o usare gli sprites nei vostri programmi 

- avvertire della presenza di qualsiasi virus in memoria o sui vostri dischetti, distruggendo tutti i virus conosciuti 

- salvare schermate e musiche su disco come files IFF, per poterle elaborare dai vostri programmi preferiti 

- rallentare lo svolgimento dei giochi fino al 20% della velocità originale, per aiutarvi negli schermi più complicati 

- usare il più potente moni tor-dis assembler per Amiga, con completo controllo dell "hardware e dei suoi registri (anche quelli 
”write-only M X uno strumento preziosissimo per il detaigging dei vostri programmi: screen editor, breakpoint dinamici, 
assembler/disassembler delle istruzioni Copper, disk I/O con possibilità di alterare parametri quali sync o lunghezza della traccia, 
calcolatrice, notepad, ricerca di immagini o suoni in tutta la memoria, modifica caratteri in memoria, altera i registri della CPU, 
ed altro ancora. 

Amiga Action Replay originale 
con manuale in italiano a sole 1 79.000 







Viale Monte Nero 31 
20135 Milano 

Tel. (02) 55.18.04.84 

(4 linee rie. aut.) 

Fax (02) 55.18.81.05 (24 ore) 
Negozio aperto al pubblico tutti i giorni 
dalle 10 alle 13 e dalle 15 alle 19. 
Vendita per corrispondenza. 
Sconti per quantità ai sigg. Rivenditori. 


SYNCHRO EXPRESS 

Eccezionale novità per Amiga: è 
finalmente disponibile il primo copiatore 
hardware peri dischetti Amiga! Con 
una speciale interfaccia colle gau a 2 
disk drìves (quello interno al computer ed 
uno esterno), effettua copie di sicurezza, 
perfettamente funzionanti, di qualsiasi 
software protetto in meno di 50 
secondi, compresi gli "impossibili" 
come Dragoni Lair. 

89.000 



FATTER AGNUS 8372- A 
Il nuovo chip che permette di usare 1 MB di Chip 
Ram nel vostro Amiga, disponibile ora in kit di 
montaggio per l'installazione in tutti i modelli 
B-2000, ed A-500 (con piastra madre rcv. 4 o 5) con 
inserita l'cspanaione A-501 da 512K. 
159.000 





L’INFORMATICA PER 

LO STUDIO L’HOBBY LA CASA 





HA FINALMENTE 

UNA SUA 

MOSTRA- MERCATO 



Si chiama Abacus. Si tiene 
dal 21 al 29 Aprile nel 
Padiglione 14 della Gran- 
de Fiera d’Aprile. Li vi a- 

spettano i computer (con pro- 
grammi e periferiche) per i 
giochi intelligenti, per impa- 
rare una lingua, per fare 
musica, per disegnare, per 
scrivere la tesi di laurea, per 
giocare al totocalcio. E poi 
i lettori CD ROM per le en- 
ciclopedie, i telefoni più o 
meno intelligenti, i terminali 
videotext, i nuovi prodotti 
che “telematizzano” la ca- 
sa. Con la possibilità di ve- 
derli, toccarli con mano e - 
in molti casi - acquistarli. 


SOFTWARE 


SYSTEMS EDITORIALE PER TE 


La voce III 

Aggiunge al C/64 nuovi comandi Basic 
che consentono sia di far parlare il compu- 
ter. sia di farlo Cantare! Diversi esempi 
allegati. 

Cassetta : L. 12000 - Disco: L. 15000 


Raffaello 

Un programma completo per disegnare, a 
colori, con il C/64: linee, cerchi, quadrati, 
eccetera. Valido sia per disegno a mano li- 
bera che geometrico. 

Cassetta: L. 10000 

Oroscopo 

Devi solo digitare la data di nascita e le 
coordinate geografiche del luogo che ti ha 
dato i natali. Vengono quindi elaborate le 
varie informazioni (case, influenze dei se- 
gni astrali, eccetera) e visualizzato un profi- 
lo del tuo carattere. Valido per qualsiasi an- 
no. è indicato sia agli esperti sia ai meno in- 
trodotti. E' allegata una tabella delle coor- 
dinate delle più note città italiane e l’elen- 
co delle ore legali in Italia dal 1916 al 
1978. 

Cassetta: L. 12000 
Disco: L. 12000 


Computer Music 

Cassetta contenente numerosi brani di 
successo da far eseguire, in interrupt. al 
tuo C/64 sfruttando, fino in fondo, il suo 
generatore sonoro (SID). 

Cassetta: L. 12000 

Gestione Familiare 

Il più noto ed economico programma per 
controllare le spese ed i guadagni di una 
famiglia. 

Cassetta: L. 12000 
Disco: L 12000 

Banca Dati 

Il più noto ed economico programma per 
gestire dati di qualsiasi natura. 

Cassetta : L. 12000 
Disco: L. 12000 

Matematica finanziaria 

Un programma completo per la soluzione 
dei più frequenti problemi del settore. 

Cassetta: L. 20000 
Disco: L. 20000 

Analisi di Bilancio 

Uno strumento efficace per determinare 
con precisione i calcoli necessari ad un 
corretto bilancio. 

Cassetta: L. 20000 
Disco: L. 20000 


Corso di Basic 

Confezione contenente quattro cassette 
per imparare velocemente le caratteristi- 
che delle istruzioni Basic del C/64 ed i ru- 
dimenti di programmazione. Interattivo. 

Cassetta: L. 19000 


Corso di Assembler 

Un corso completo su cassetta per chi ha 
deciso di abbandonare il Basic del C/64 
per addentrarsi nello studio delle potenzia- 
lità del microprocessore 6502. Intei attivo. 

Cassetta.* L 12000 


Logo Systems 

Il linguaggio più facile ed intuitivo esistente 
nel campo dell'informatica; ideale per far 
avvicinare i bambini al calcolatore. Diversi 
esempi allegati. 

Cassetta: L. 6500 

Compilatore 
Grafico Matematico 

Uno straordinario programma compilato- 
re. di uso semplicissimo, che permette di 
tracciare, sul C/64, grafici matematici Hi- 
Res ad altissima velocità. Esempi d'uso 
allegati. 

Cassetta: L. 8000 

Emulatore Ms-Dos e Gw- 
Basic 

Un prodotto, unico nel suo genere, che 
permette di usare, sul C/64 dotato di drive, 
la sintassi tipica del più diffuso sistema o- 
perativo del mondo. Ideale per studenti. 

Solo su disco: L. 25000 

Emulatore Turbo Pascal 64 

Permette di usare le più importanti forme 
sintattiche del linguaggio Turbo Pascal (an- 
che grafiche!) usando un semplice C/64 
dotato di drive. Ideale per studenti. 

Disco : L 25000 

L.M. + Routine grafiche 

Un fascicolo speciale (corredato di di- 
schetto) suddiviso in due parti: corso com- 
pleto di linguaggio macchina 6502 e im- 
plementazione di numerose routine che 
aggiungono al C/64 istruzioni Basic speci- 
fiche per la grafica, comprese quelle per 
disegnare in prospettiva! 

Fascicolo + disco: L 1 6000 

Utility 1 

Un dischetto pieno zeppo di programmi 
speciali per chi opera frequentemente con 
il drive. 

Disco: L. 15000 


Utility 2 

Seconda raccolta di utility indispensabili 
per realizzare sofisticate procedure di 
programmazione. 

Disco: L. 15000 


Graphic Expander 128 

Per usare il C/1 28 (in modo 1 28 e su 80 
colonne) in modo grafico ht-res. Aggiunge 
nuove, potenti istruzioni Basic per disegna- 
re in Hi-Res con la massima velocità in mo- 
dalità 80 colonne. 

Disco: L 27000 


Directory 

Come è noto, a partire dal N. 10 di 
"Software Club" (la rivista su disco per l'u- 
tente dei "piccoli” computer Commodo- 
re). vengono riportati tutti i listati, in forma- 
to C/64-C/1 28. pubblicati su " Commodo- 
re Computer Club". In precedenza tali li- 
stati venivano inseriti, mensilmente, in un 
dischetto, di nome "Directory", che oltre ai 
programmi di C.C.C. ospitava decine di al- 
tri file tra cui musiche nell'interrupt. giochi, 
listati inviati dai lettori e altro. Ogni disco, 
dal prezzo irrisorio, contiene quindi una ve- 
ra miniera di software. Ordinando i di- 
schetti di "Directory" si tenga conto che al 
N. 1 corrispondeva il contenuto del N. 34 
di "Commodore Computer Club", al N. 2 il 
N. 35 e cosi via. 

Ogni dischetto: L. 12.000 



10 - Commodore Computer Club 




Micro Pascal 64 

Descrizione accurata della sintassi usata 
dal linguaggio Pascal "classico". Completa 
il volume un programma di emulazione del 
PL/O sia in formato Microsoft sia in vesione 
C/64 (da chiedere, a parte, su disco). 
(125 pag.) 

L. 7000 


Dal Registratore al Drive 

Esame accurato delle istruzioni relative alle 
due più popolari periferiche del C/64. Di- 
versi programmi applicativi ed esempi d'u- 
so. (94 Pag.) 

L 7000 


Il linguaggio Pascal 

Esame approfondito della sintassi usata 
nel famoso compilatore. (112 pag.) 

L. 5000 


Utilities e giochi didattici 

Raccolta di numerosi programmi, in ver- 
sione C/64 e Spectrum, di particolare inte- 
resse per chi intenda svliluppare software 
didattico. (127 pag.) 

L. 6500 


Simulazioni e test 
per la didattica 

Raccolta di numerosi programmi che ap- 
profondiscono e tendono a completare la 
trattazione già affrontata sul precedente 
volume. (127 pag.) 

L. 7000 


Dizionario del Personal 
Computer 

Raccolta dei termini più diffusi nel campo 
professionale: dizionario inglese - italiano. 
(Edizione ridotta). (96 pag.) 

L. 8000 


Dizionario dell'Informatica 

Dizionario inglese italiano di tutti i termini 
usati nell’informatica. (Edizione completa). 

(385 pag.) 

L. 20000 


Word processing: istruzioni 
per l'uso 

Raccolta delle principali istruzioni dei più 
diffusi programmi di w/p per i sistemi Ms- 
Dos: Word Star. Samna. Multimate Advan- 
tage. Word 3. (79 pag.) 

L. 5000 


Telefax 

Volumetto divulgativo sull'importanza del 
Telefax e sulle sue modalità operative ca- 
ratteristiche. [66 pag.) 

L. 5000 

Come compilare un giornale 
aziendale in Azienda 

I principali problemi per chi opera in am- 
biente DPT. affrontati e risolti con la massi- 
ma chiarezza e semplicità. (80 pag.) 

L. 5000 

Unix 

Un volumetto per saperne di più sul siste- 
ma operativo professionale per eccellen- 
za. (91 pag.) 

L 5000 


ABBONAMENTO 

Commodore Computer Club 
1 1 fascicoli: L. 60.000 

ARRETRATI 

Ciascun numero arretrato 
di C.C.C. L. 6000 


COME RICHIEDERE I PRODOTTI SYSTEMS 

Coloro che desiderano procurarsi i prodotti della Systems Editoriale devono in- 
viare. oltre alla cifra risultante dalla somma dei singoli prodotti. L 3500 per spe- 
se di imballo e spedizione, oppure L 6000 se si desidera la spedizione per mez- 
zo raccomandata. 

Le spese di imballo e spedizione sono a carico della Systems se ciascun ordine 
è pari ad almeno L. 50000. 


Per gli ordini, compilare un normale modulo di C/C postale indirizzato a: 

C/C Postale N. 37 95 22 07 
Systems Editoriale 
Viale Famagosta, 75 
20142 MILANO 

Non dimenticate di indicare chiaramente, sul retro del modulo (nello spazio in- 
dicato con "Causale del versamento") non solo il vostro nominativo completo di 
recapito telefonico, ma anche i prodotti desiderati ed il tipo di spedizione 
da effettuare. 

Per sveltire la procedura di spedizione sarebbe opportuno inviare, a parte, una 
lettera riassuntiva dell'ordine effettuato, allegando una fotocopia della ricevuta 
del versamento. 

Volendo una spedizione in contrassegno è necessario anticipare la cifra di L 
1 0000 (diecimila), da inviare secondo le modalità prima indicate, indipenden- 
temente dalla quantità di materiale richiesto, e da conteggiare, comunque. IN 
AGGIUNTA alla cifra risultante dall'ordine. (Si sconsiglia, pertanto, la richiesta di 
di prodotti in contrassegno) 


Chi volesse ricevere più celermente la confezione deve inviare la somma richie- 
sta mediante assegno circolare, oppure normale assegno bancario (non trasfe- 
ribile o barrato due volte) intestato a: 

Systems Editoriale 
Milano 


Commodore Computer Club - 1 1 




CHE TEMPI. RAGAZZI! 

Lavorando con l’orologio 
interno del mio C/128 , mi 
sono reso conto che un li- 
stato come questo... 

10 Ti$ = ”000000" 

20 H$ = Left$ (ti$, 2): M$ = 
Mid$ (ti$, 3, 2) 

30 S$ = Right$ ( ti$ , 2): Print 
Chr$(19); 

40 Print "ore:"; H$: Print 
"minuti:"; M$ 

50 Print " sec :"; S$: Sleep 1 : 
Goto 20 

...presenta un errato con- 
teggio dei secondi. Spes- 
so, infatti, viene saltato un 
secondo, passando diretta- 
mente (p. es.) da 8 a 10. 
Eliminando l’istruzione 
Sleep, tutto torna normale: 
vuol dire che Sleep non è 
compatibile con la variabile 
di sistema Tl$? 

(Luca Seriini - Castenedoio) 

L ’inconveniente non è le- 
gato a problemi di compa- 
tibilità, ma piuttosto ai tempi 
di esecuzione dell’interprete 
basic, in associazione ad una 
non totalmente affidabile pre- 
cisione di 775. 

Più chiaramente: quando il 
programmino va ad eseguire 
l'istruzione Sleep 1, che inter- 
rompe le operazioni per un 
secondo, la variabile 775con- 
tinua ad aggiornarsi, incre- 
mentandosi di un secondo ad 
ogni "passaggio". 

Prima dei vari Printche mo- 
strano lo stato di Tl$, va però 
considerato anche il tempo 
necessario all’interprete per 
eseguire (dopo il Goto 20 ) le 
assegnazioni alle variabili 
stringa, che, tra l’altro, risulta- 
no proprio tra le operazioni 
più lente del basic. 

Certo si sta parlando di fra- 
zioni di secondo, ma, dopo un 
certo numero di iterazioni, la 
loro somma provocherà il 
"salto" lamentato. 

A livello di decimi di secon- 
do, inoltre, la variabile Tl$ ed 
il comando Sleep non sono 



del tutto affidabili, aggiungen- 
do qualche altro millesimo di 
ritardo o anticipo al già preca- 
rio equilibrio del programma. 

Nel prosieguo della missi- 
va, il lettore propone in alter- 
nativa una specie di contato- 
re interno al programma, per 
supplire a tale imprecisione. 

Ma il rimedio non può ov- 
viamente essere questo: per 
gli stessi motivi, l'orologio ri- 
sulterebbe assolutamente 
non conforme alla realtà, an- 
che in presenza di una scan- 
sione dei secondi apparente- 
mente regolare. Se si ha l'e- 
sigenza di rendere compatibi- 
le Sleep (o qualunque altro 
tipo di temporizzazione ba- 
sic) con la reale scansione 
del tempo, l’unica soluzione 
possibile è quella di ricorrere 
ai veri orologi hardware del 
computer, ovvero i due cosid- 
detti TOD (Time Of Day) im- 
plementati dai due chip CIA 
(Complex Interface Adapter). 

Per la cronaca, sono locati 
agli indirizzi 56328 - 56331 
(Cia 1 ) e 56584 - 56587 (Cia 
2) di banco 15 e dispongono 
anche di allarme (come una 
sveglia, per intenderci), ma 
una loro corretta gestione è 
possibile solo da linguaggio 
macchina, per di più compli- 
cato (o semplificato, dipende 
dai gusti) dalla notazione 
BCD (Binario Codificato De- 
cimale). 

Il tutto, considerate le esi- 
genze di compatibilità col ba- 


sic, condito da una spruzzati- 
na di Interrupt. 

L’argomento, insomma, 
non è certo affrontabile in 
questa sede. 

Se richiesto da più "voci" 
(triste esigenza, ahinoi, per 
un computer ormai in ago- 
nia), se ne potrà ugualmente 
parlare in qualche articolo 
espressamente dedicato al 
linguaggio macchina ed al 
Bcd in rapporto al C/128. 

GEOS M UTIL AT O 

Dopo aver sentito parlare 
con toni entusiastici del si- 
stema Geos, mi sono deci- 
sa ad acquistarlo (V 1.5). 
Sul disco, però, non ho tro- 
vato i programmi che più mi 
interessavano: GeoWrite e 
GeoPaint. Da! manuale (In 
inglese) mi è parso di capi- 
re che i suddetti programmi 
non ci siano proprio, e sia- 
no da comprare separata- 
mente. E’ possibile? 

(Elena Annuema - Milano) 

I l pacchetto Geos, giunto pe- 
raltro alla versione 2.0 (sal- 
vo novità dell'ultima ora), 
comprende tanto il GeoWrite 
che il GeoPaint. E’ probabile 
che l’acquisto sia errato, ma- 
gari invece del Geos si tratta 
di qualche applicazione ad 
esso riservata. A meno che, 
ipotesi non del tutto da scar- 
tare, non sia una copia in- 
completa (vogliamo chiamar- 
la pirata?) dell’originale... 



12- Commodore Computer Club 



(IN)UTILI AUTOBOOT 


A proposito della risposta 
” Routine Fantasma" pub- 
blicata nella posta per 
C/128 del n. 71, vorrei sape- 
re se le stesse regole si 
possono applicare al C/128 
in modo 64, e se si può far 
eseguire un programma 
basic tramite l'auto boot. 
(Andrea - Vicenza) 

L ’argomento di "Routine 
fantasma ", in effetti, non 
trattava l’autoboot in genera- 
le, ma solo in rapporto alla 
possibilità di "nascondere" al* 
la directory un eventuale pro- 
gramma. 

In tal senso, una risposta 
alla seconda domanda è già 
esplicitamente inclusa in 
quelle righe. 

Il semplice autoboot di un 
programma basic, è invece la 
cosa più facile di questo mon- 
do. anche per chi non abbia 
voglia di approfondire l'argo- 
mento dal punto di vista pro- 
grammazione: basta adope- 
rare la routine basic Boot Ma- 
ker inclusa nel dischetto for- 
nito assieme al computer, 
che comprende un’opzione di 
scelta tra programmi basic ed 
LM. Il modo 64, in senso stret- 
to. non consente l'autoboot. 

Tuttavia, è teoricamente 
possibile applicare quanto 
esposto sul n. 71. 

Nel lontano n. 41 (aprile '87 
pag. 69), è stata infatti pubbli- 
cata una (utilissima) routine 
di autoboot che consente 
passaggio, caricamento ed 
esecuzione automatica di 
programmi in modo 64. Di- 
sponendo delle necessarie 
cognizioni Assemblye di mol- 
ta. molta pazienza, si potreb- 
be anche modificarla per lan- 
ciare un programma "fanta- 
sma" memorizzato su tracce 
e settori di un disco. Ma. in 
tutta franchezza, a che prò? 

Un simile programma gire- 
rebbe solo in modo 64, ma 
potrebbero usufruirne esclu- 


sivamente i possessori del 
C/128! 


Come si fa ad inserire in un 
programma, dopo un co- 
mando Header (a$), la ID di 
un disco da formattare ado- 
perando una variabile? 
(Alberto Bianchi - Roma) 

I l manuale in dotazione al 
C/128, alla voce Header, ri- 
porta a chiare lettere una nota 
che precisa: "Non è possibile 
utilizzare una variabile strin- 
ga come i.d. n . 

Tuttavia, forzando un po’ la 
mano, qualcosa si può fare. 

Ecco la soluzione: 

10 A$ = "miodisco": 


del VDC, è possibile visua- 
lizzare i pixel con colori dif- 
ferenti. 

(Raffaele Cirillo - T recase) 

D ue pixel contigui, consi- 
derando il colore di primo 
piano, non possono assume- 
re differenti cromatismi. 

In teoria, è possibile adope- 
rare un diverso colore per 
ogni raggruppamento di pixel 
corrispondente ad una posi- 
zione - carattere, ovvero 8x8 
pixel, ma nella pratica è im- 
possibile, a meno di non ri- 
durre le dimensioni della pa- 
gina grafica. 

Vediamo perchè, delinean- 
do le caratteristiche grafiche 
generali della modalità 80 co- 
lonne. 


Com’è noto, il Chip Vdc di- 
spone di una sua propria area 
di memoria, completamente 
separata dal resto del compu- 
ter. per un totale di 16 Kbyte. 

Quest’area, normalmente, 
contiene la memoria di scher- 
mo (ad ogni locazione corri- 
sponde un carattere sul vi- 
deo). gli attributi di ogni carat- 
tere (colore, sottolineatura, 
set maiscolo / minuscolo, 
ecc.), nonché i due set di ca- 
ratteri disponibili e un po’ di 
Ram libera. 

Quando si passa in modo 
grafico, settando per l'appun- 
to il bit 7 del registro 25 del 
Vdc. a partire dalla locazione 
0 della stessa area di memo- 
ria si instaura una Bitmap, cui 


ld$ = "xx M 

20 Header (a$) + Chr$ 
(44) + ld$ 

Si provi a mandare 
in esecuzione questo 
mimprogramma (ba- 
dando che il disco in- 
serito nel drive sia re- 
almente da formatta- 
re), e tutto funzionerà 
regolarmente. 

Dopo la formattazio- 
ne, si avrà un disco 
con nome Miodisco e 
i.d. xx. 

Unico limite, la va- 
riabile A$ non dovrà 
superare i 13 caratteri, 
in quanto il successivo 
Chr$ (44) { codice Ascii 
della virgola) e i due 
caratteri della ID si 
sommeranno alla sua 
lunghezza, provocan- 
do un errore String too 
long se il totale supera 
16. 


PER PIXEL 

Vorrei sapere se, una 
volta entrati in Hires 
640 x 200 settando il 
bit 7 del registro 25 


100 REM DEMO UTILIZZO DELLA SUPER HIRES 640X200 
110 REM = = * = == = = = = = == = = == = = ====== = = == = »== = =SX = 

120: 

130 REM ATTIVA GRAFICA SUPER HIRES 

140 FAST: SCRIVI = 52684: LEGGI = 52698: SYS LEGGI, , 25 

150 RREG A: A = A AND 191 REM BIT 6 AZZERATO 

160 A = A OR 128: REM BIT 7 SETTATO 

170 SYS SCRIVI. A. 25: REM HIRES SENZA ATTRIB. COLORE 

180 REM PULISCE PAGINA GRAFICA 

190 SYS LEGGI. . 24: RREGA: A = A AND 127: REM BIT 7 = 0 
200 SYS SCRIVI. A, 24: REM OPERAZIONE DI ’FILL' 

210 SYS SCRIVI. 0. 18: SYS SCRIVI. 0. 19: REM IND.DI START 
220 SYS SCRIVI. 0. 31 : REM VALORE DA STORARE IN RAM 
230 FORX = 0TO63: SYS SCRIVI. 255. 30: NEXT: REM FILL 

240 REM RILEVAMENTO TASTI E JOYSTICK 

250 X = 320: Y = 1 00: CI = 0: C2 = 1 5: REM COORDINATE E COLORI 
26C GET X$: IFX$ = "S ,, ORX$ = "P" THEN BEGIN 
270 CI = (Ci - (X$ = "S") ) AND15: C2 = (C2- (X$ = "P") ) AND15 
280 SYS SCRIVI, C2'16 + CI, 26: BEND: REM CAMBIO COLORI 
290 IF X$ = CHR$ (19) THEN 250: REM POSIZIONE 'HOME' 

300 IF X$ = CHR$ (147) THEN 210: REM CANCELLA SCHERMO 
310 IF (JOY (2) AND128) =128 THEN FL = 1 : REM FIRE PREMUTO? 
320 J = JOY (2) AND15: IFJ = 0 THEN 260: REM RILEVA JOYSTICK 

330 REM NUOVE COORDINATE X ED Y 

340 Y2 = Y: Y = Y + (J < 3 OR J = 8) - (J > 3 AND J < 7) 

350 IFY < OORY > 199 THEN Y = Y2: REM LIMITE VERTICALE 
360 X2 = X: X = X- (J > 1 AND J < 5) + (J > 5) 

370 IFX < OORX > 639 THEN X = X2: REM LIMITE ORIZZONTALE 
380 REM — - INDIRIZZO NELLA VDC RAM (HI/LOW) 

390 IND = (Y*80) + INT (X/8) 

400 HI = INT (IND/256) : LOW = IND- (Hl*256) 

410 REM DISEGNA NELLA BITMAP 

420 SYS SCRIVI. HI. 18: SYS SCRIVI, LOW, 19 

430 IFFL = 1 THEN FL = 0: GOTO260: REM SE FIRE. NON DISEGNA 

440 SYS LEGGI. . 31 : RREG A: REM LEGGE REGISTRO 31 

450 SYS SCRIVI, HI, 18: SYS SCRIVI, LOW. 19 

460 SYS SCRIVI. A OR 2 A (7- (X AND 7) ) . 31 

470 GOTO 260 


Commodore Computer Club - 13 



ad ogni pixel "acceso" corri- 
sponde un bit posto ad 1 . 

Tra l’altro, con una disposi- 
zione più semplice di quella 
adottata dal Vie per la comu- 
ne Hires 40 colonne. • 

Qui, infatti, ad ogni linea 
orizzontale sullo schermo 
corrisponde una sequenza 
continua di byte. 

Il colore viene associato 
(stavolta esattamente come 
per il Vie) mediante una serie 
di locazioni chiamate Attribu- 
te Memory, ognuna delle 
quali controlla tutti i pixel al- 
l’interno di una griglia 8x8 
corrispondente ad una posi- 
zione carattere. 

Quest’area di memoria può 
essere abilitata, o meno, 
agendo sul bit 6 del registro 
25 (0 = off 1 = on); se la si 
attiva, l’indirizzo di partenza è 
determinato dal valore conte- 
nuto nei registri 20 (Alto) e 21 
(basso). 

A parte la complicazione in 
sè, nella stragrande maggio- 
ranza dei casi è conveniente 
disabilitare questa possibilità, 
per un motivo che risulterà 
ovvio con un paio di calcoli. 

Data la risoluzione dello 
schermo, la bitmap occuperà 
640 x 200 = 1 28000 bit, pari 
a 128000/8=16000 byte, ov- 
vero quasi tutta la memoria 
del Vdc: in pratica, non rima- 
ne spazio per gli attributi co- 
lore. 

La prassi più comune, 
quindi, è quella di disabilitare 
la Attributo Memory in modo 
tale che i colori di sfondo e 
primo piano, unici per tutta la 
pagina grafica, siano preleva- 
ti dal registro 26. 

Più in particolare, i bit da 0 
a 3 di quest'ultimo determina- 
no il colore di fondo, mentre 
quelli da 4 a 7 il colore di 
primo piano. 

Va detto che, volendo, gli 
attributi colore possono esse- 
re implementati diminuendo il 
numero di righe dello scher- 
mo (= limitare le dimensioni 
della bitmap), ma program- 


mare la super hires è già ab- 
bastanza complesso senza 
aggiungere ulteriori compli- 
cazioni... Giusto per non fer- 
marsi alle sole parole, in que- 
ste pagine potete trovare un 
listato dimostrativo, scritto in 
basic, che consente di dise- 
gnare con il joystick (in porta 
2) nella pagina Hires 640 x 
320. Inoltre, con il tasto S (da 
premere 2 volte, come di con- 
sueto, nelle 80 colonne) si 
cambia il colore di Sfondo, 
mentre al tasto Pè demanda- 
to il compito di modificare il 
colore di tracciamento. 

Premendo il Fi re del Joy, si 
avanza (un po’ alla cieca) 
senza disegnare, con Home 
ci si riporta al centro dello 
schermo e con Shift + Home 
si cancella tutta la pagina. 

Così com’è, il programma 
non prevede un ritorno alle 
normali condizioni testo, che 
richiederebbe quantomeno 
un ripristino della ram caratte- 
ri; per farlo, è necessario un 
Reset del sistema. 

Il listato, zeppo di Rem 
esplicative (eliminabili), ha 
uno scopo prettamente didat- 
tico e dimostrativo, ma può 
servire da base per più sofi- 
sticate elaborazioni. L’ideale, 
comunque, sarebbe tradurlo 
in Assembly per supplire alla 
lentezza del basic, peraltro 
più comprensibile (o quasi...). 

Si ricordi, spulciando il li- 
stato, che per accedere ai re- 
gistri del Vóce necessario ri- 
correre a due routine di siste- 
ma: $CDCC per pokarvi qual- 
cosa e $CDDA per leggerli. 

Nel primo caso, in basic, si 
adopera... 

Sys 52684, valore, registro 

...mentre con... 

Sys 52698 , , registro 

...si otterrà il contenuto del 
registro nell’accumulatore, 
che da basic è associabile 
alla variabile (p. es.) A me- 
diante l’istruzione RregA. Dei 
registri Vdc usati, 1 8 e 1 9 ser- 
vono per memorizzarvi l’indi- 
rizzo della Ram 80 colonne al 


quale si vuole accedere (for- 
mato alto / basso); il bit 7 del 
registro 24 indica se si vuole 
compiere una operazione di 
Fili (bit azzerato, come nel 
nostro listato per porre a zero 
tutti i bit della bitmap) o di 
Copy (bit settato); infine, il re- 
gistro 31 deve contenere il 
valore che si intende trasferi- 
re nella Ram puntata dai regi- 
stri 1 8 e 1 9 (tanto per il Riem- 
pimento che per il semplice 
"storaggio"). Quando si scri- 
ve qualcosa in Ram (nel no- 
stro caso rasformata in Bit- 
map), il contenuto dei registri 
1 8 e 1 9 viene automat- 
icamente incrementato dal si- 
stema. Il tutto non è certo 
semplice, ma la complicazio- 
ne, per chi vuole "strizzare" il 
C/128, è prassi. 

fìlA’ F A TT O. Q QUASI.» 

Ho trasferito sul C/128 una 
routine basic di Input con- 
trollato In origine scritta 
per il C/64, sul quale funzio- 
nava piuttosto bene. In mo- 
do 128, però, pur non pre- 
sentando anomalie, è mol- 
to più lenta : non potreste 
pubblicarne un equivalente 
in linguaggio macchina 
tanto per il C/64 che per il 
C/128? 

(Renato Scuccato - Carmi- 
gnano di Brenta) 


I l basic 7.0, in effetti, risulta 
spesso più lento del suo 
meno potente cugino 2.0, a 
meno di non sfruttare appie- 
no le possibilità offerte dal 
Fast Mode (su 80 colonne è 
davvero risolutivo, potendolo 
adoperare in permanenza). 

Nel caso particolare degli 
Input controllati, spesso que- 
sto tipo di routines sono pro- 
gettate in modo da potersi 
adattare alle più svariate esi- 
genze, con inevitabile mag- 
giore "pesantezza" nel proce- 
dere. 

Un primo rimedio, già in ba- 
sic, può dunque essere quel- 
lo di snellire la routine man- 
tendo solo i controlli stretta- 
mente necessari al program- 
ma. 

Chiaro che, affidando il tut- 
to al linguaggio macchina, il 
problema cessa di esistere. 

Dovendo, però, progettare 
una routine necessariamente 
generica, questa assumereb- 
be in ogni caso delle dimen- 
sioni non certo irrilevanti, 
senza peraltro potersi mai 
adattare a tutte le esigenze. 

Una routine (in l.m.) del ge- 
nere, comunque, è stata già 
pubblicata su C.C.C. n. 55 
(Lug / Ago ’88), riferita al 
C/64: con poche modifiche, e 
un po’ di abitudine all’Assem- 
bly, può anche essere adatta- 
ta al modo 128. 



14 - Commodore Computer Club 



SISTEMI 



IL C/128 VA IN PENSIONE 

Ed il C64 entra nella terza età. 

Consigli (quasi) disinteressati per guardare lontano 


di Alessandro de Simone 


D opo la morte ormai accertata del 
C/16 e del Plus/4 (annunziata con 
rammarico, del resto, qualche numero 
fa) il polso del C/128 incomincia a batte- 
re debolmente. 

La mortale malattia è quella che, pun- 
tualmente, ha colpito dapprima i sistemi 
della serie Commodore Pet e poi il Vie 
20 . 

Ma il "virus", stavolta, risulta ancora 
più violento di quanto accadde, tempo 
fa, ai primi modelli di casa Commodore. 

Alla serie Pet ed al Vie 20, infatti, l’ob- 
solescenza inferse il colpo mortale per 
motivi tecnologici: i primi erano compu- 
ter in grado di gestire al massimo 32 
KRam ed offrivano l’uscita solo in bianco 
e nero; il secondo, pur disponendo di 
un’uscita a colori, era troppo limitato sia 
per quantità di Ram sia per l’angusta 
visualizzazione dello schermo (512 ca- 
ratteri o giù di lì). Era fin troppo intuitivo 
che il C/64, appena uscito, dovesse far 
cadere nell'oblio tutti i computer che, a 
pari prezzo, offrivano caratteristiche 
analoghe, se non inferiori. 

Il C/64, ed in seguito il C/128 , offrivano 
infatti, a parità di prezzo, una quantità di 
memoria decisamente all'avanguardia, 
un’uscita a 16 colori (solo più tardi l'IBM 


gridò al miracolo quando propose un 
Personal Computer a quattro colori) e la 
gestione innovativa di musica e sprite. 

Fino all’anno scorso, dunque, è durata 
la pacchia; che, a nostro parere, è durata 
fin troppo. 

Oggi un C/64 dotato di drive 1541 
costa, all’utente finale, quasi quanto un 
Amiga 500. E’ ben vero che un Amiga 
senza secondo drive, nè espansione di 
memoria, nè monitor dedicato vale ben 
poco. 

Tuttavia, volendo considerare un si- 
stema completo di stampante e di qual- 
che ammenicolo pressoché indispensa- 
bile, oggi come oggi il C/64 (ed a mag- 
gior ragione un C/128, peraltro non più 
presente nei listini ufficiali della casa ma- 
dre) non può assolutamente reggere il 
passo con ciò che offre la "concorrenza", 
sia questa la stessa Commodore (Amiga 
e sistemi Ms-Dos compatibili), siano al- 
tre marche (Atari, Ms-Dos di vario tipo). 

Il prezzo del sistema in possesso del 
nostro lettore è senz’altro pari (se non 
superiore) a quello di un compatibile Ms- 
Dos e può aver senso solo se si consi- 
dera che qualche anno fa, al momento 
dell'acquisto, un clone IBM costava al- 
meno il doppio. 


SOLDI, E NON SOLO 

La morte del C/1 28. quindi, è dovuta 
non solo ad obsolescenza tecnologica , 
ma anche, e soprattutto, a quella com- 
merciale. Nessuno, oggi, spende un mi- 
lione per entrare in posseso di un C/128 
(o C/64) completo: preferisce acquistare 
un clone e, un po’ più in là, la stampante 
per completare il sistema. L'unico motivo 
che spinge il neoutente ad acquistare un 
C/64 è il fatto che questo è venduto, 
quasi sempre, con il registratore a cas- 
sette in omaggio (o quasi) e che si può 
fare qualcosina anche utilizzando que- 
st’unica periferica, soprattutto nel campo 
dei videogames. Spingere l'utente (che 
già possiede il solo C/64) ad acquistare, 
oggi, anche il drive, può risultare antisto- 
rico, a meno che la Commodore non 
decida di vendere i suoi 1541 ad un 
prezzo non superiore alle 200 mila lire 
(IVA compresa, per carità). Ma, in que- 
sto caso, si potrebbero (forse) limitare gli 
effetti dell’obsolescenza solo nei vecchi 
sistemi: chi non possiede un computer, 
e desidera, finalmente, acquistarne uno, 
farà molto bene i suoi conti prima di 
spendere più di mezzo milione per un 
C/64 completo di drive. 


Commodore Computer Club - 15 






SOFTWARE 

Ma anche ammes- 
so, e non concesso, 
che l’utente sia perdu- 
tamente innamorato 
dei videogames del 
C/64 (notate che non 
parliamo già più del 
C/128?) e degli effetti 
sonori impossibili da 
realizzare con un Ms- 
Dos compatibile, un’al- 
tra limitazione provve- 
de ad allargare il già 
ampio divario tra il 
computer ad 8 bit e 
quelli, più moderni, a 
1 6/32 bit. 

Il software, ragazzi, 

non è una cosa che si 
può trascurare. E’ ben vero che esistono 
pacchetti di tutto rispetto che consento- 
no di archiviare dati, stendere relazioni e 
documenti (perfino libri!) ed effettuare 
calcoli in catena. Tutto sta a restare delle 
stesse convinzioni anche dopo aver usa- 



to, per un solo pomeriggio, pacchetti 
analoghi su veri Personal Computer. 

La velocità di elaborazione, le raffina- 
tezze tecnologiche, l’affidabilità e, so- 
prattutto, le potenzialità offerte da un 
qualsiasi pacchetto professionale che 


AMO IL C/128 PERCHE’... 

P remetto che sono un felice possessore di un sistema composto da C/128, 
drive 1541, drive 1571, stampante Mps 803, monitor 1901, mouse 1351, 
interfaccia seriale Rs-232, Modem 300/1200 baud Hayes compatibile. 

Mi rivolgo a tutti gli utenti e non (leggi negozianti) di sistemi Ms-Dos, Amiga, 
Atari (ed altro) i quali denigrano fin troppo questa stupenda macchina, relegan- 
dola al ruolo di "videogame casalingo". 

Personalmente ritengo che non sia da sottovalutare, anche se la carenza di 
software dedicato la mette in secondo piano; non bisogna dimenticare che dal 
punto di vista h/w è abbastanza completa: uscita 40 / 80 colonne, Rs-232, bus 
seriale veloce, grafica da 160 x 200 a 640 x 200 e così via. 

Forse il mio è un caso isolato, almeno da quanto leggo su riviste del settore, 
ma sono riuscito a procurarmi quasi il meglio di- quanto si possa oggi trovare sul 
mercato in fatto di s/w in modalità 128, e per giunta in 80 colonne: Superbase, 
Superscript nonché l’eccezionale Geos 128 2.0, tutti rigorosamente originali 
(sono contro ogni tipo di pirateria informatica); inoltre posseggo un buon 
compilatore Basic 7.0 (Gnome Speed) ed un programma di comunicazione 
(Link 128). 

A conti fatti, quindi, non vedo questa superiorità schiacciante, come almeno 
vogliono far credere, del mondo Ms-Dos nei confronti del mio C/128, visto che 
comunque sono in grado di archiviare dati e richiamarli ad una discreta velocità, 
redigere documenti di lunghezza superiore alle capacità di un dischetto da 340 
Kbytes, fare del Desk Top Publishing casereccio, comunicare su rete telefonica 
e così via. 

In conclusione esprimo il mio desiderio informatico: Apple Mclntosh II, che è 
l’unica macchina per la quale rinuncerei al mio attuale sistema. 


(Antonio Rotta - Arco Felice ) 


giri su un qualsiasi perso- 
nal computer mettono in 
secondo piano tutte le al- 
tre caratteristiche del 
C/64, ad eccezione dei 
motivi affettivi. 

"Fare" D.T.P. con C/128 
e stampante Mps-803? 
Certo, l’ho fatto anch’io; 
ma solo quando di D.T.P. 
non si parlava nemmeno e 
l’unico programma del ra- 
mo alfa-numerico-pseu- 

— ■ - do-grafico (Print Master. 

insomma) girava timida- 
mente sui P.C. quando il 
C/64 già offriva, da tempo, 
Geos, Print Master, Print 

Shop, News fìoom, Music 

Shop ed altri ancora. 

Paragonare, oggi, le caratteristiche di 
Geos 64-1 28 con Ventura Publisher, Pa- 
gemakero Pagesetter è una vera follia, 
scusabile solo in chi non li ha mai visti 
girare. 


CONCLUDENDO 

Solo chi già possiede il C/64-128 (e 
non ha voglia di spendere altri soldi nel 
settore informatico) può accontentarsi di 
rinviare (perchè di questo solo si tratta) 
l’acquisto di un nuovo sistema. 

Tutti gli altri, che inizino o sieno a metà 
dell’opra, si sbrighino a decidere. 

L’obsolescenza è un fenomeno inarre- 
stabile che sta colpendo mortalmente i 
nostri amati 64-128, giorno dopo giorno 
(date un’occhiata agli annunci economi- 
ci se non ci credete). 


Noi di Commodore Computer Club 
abbiamo infatti deciso di parlare an- 
cora del C/128 solo fino al gennaio 
del 1991 e solo se le richieste dei 
nostri lettori saranno sufficien- 
temente convincenti. 


Del C/64 dovremmo (il condizionale è 
d’obbligo) parlare ancora fino al dicem- K 
bre del 1991, e sempre a patto che i 
lettori, vecchi e nuovi, ce lo consentano. 

Le pagine lasciate libere dalle vecchie 
tastiere saranno, a mano a mano, sosti- 
tuite da argomenti relativi ad Amiga e 
(se necessario) ai sistemi Ms-Dos. 


16 - Commodore Computer Club 





□ 


64/128 


18 - IL C/64 SI TRASFORMA IN OROLOGIO - SVEGLIA 

Il piccolo computer della Commodore (ed il suo fratello "maggiore", il C/128) dispone di due circuiti .. 
integrati, non molto conosciuti dalla stragrande maggioranza degli utenti. In tali dispositivi sono 
incluse alcune funzioni decisamente interessanti; ci riferiamo all’orologio, capace di tener conto 
perfino dei decimi di secondi, ed alla sveglia ad esso collegata. Inutile dire che tale contatempo 
funziona per proprio conto e, per farlo "venire alla luce", occorre attivare una routine in Interrupt che 
esamini, ogni sessantesimo di secondo, i registri del dispositivo. Per rendere l’elaborazione interes- 
sante e completa viene presentata una procedura davvero complessa, ma relativamente semplice 
da digitare, in grado di trattare, contemporaneamente, raster, interrupt, sprite ed attivazione dell’o- 
rologio sveglia. Un programma di sicuro interesse, almeno per i lettori più in gamba. 

29 - HARD COPY PER C/128 

Riportare su carta la pagina grafica è una delle funzioni più richieste dall’utenza del C/1 28. Di solito, 
però, bisogna ricorrere a routines in linguaggio macchina che, a parte la "seccatura" della difficoltà 
di digitazione, possono occupare aree di memoria non sempre libere o determinabili a priori. Viene 
presentata una procedura che, ricorrendo esclusivamente ad istruzioni Basic, consente di riportare 
su carta una qualsiasi pagina grafica del C/128. 

Nessun albero viene abbattuto per gli inserti di Commodore Computer Club, stampati su carta riciclata al 100% 



LE AVVENTURE DI 


bazia (3 e A file) 


idra 


acro 


by M. HielTà 

B. DeToffoli 



Commodore Computer Club - 17 






IL C/64 SI TRASFORMA 
IN OROLOGIO - SVEGLIA 

•lese 

C’è di tutto: sprite oltre il bordo, interrupt, raster e perfino l’utilizzo 

di un circuito elettronico poco noto 


di Paolo Monti ed Edmondo Fichera 


Il C/64 ed il 
C/128 
dispongono 
di un paio di 
circuiti 
elettronici 
molto 
sofisticati 


A molti utilizzatori sarà senz'altro capitato di 
avere un’idea improvvisa per un program- 
ma e di mettersi subito alla tastiera, senza però 
tenere conto di un elemento piuttosto importan- 
te: il tempo. 

Chi si accinge ad editare un programma rìon 
sempre ha l'intero pomeriggio a disposizione, 
magari a causa di altri impegni, ed è quindi 
costretto a guardare in continuazione l’orologio, 
perdendo così il "filo" e la concentrazione. 

Alle volte può anche capitare che, essendo il 
programma particolarmente interessante, il pro- 
grammatore si lasci prendere dall’enfasi della 
digitazione e perda completamente la cognizio- 
ne del tempo, dimenticandosi addirittura di ave- 
re qualche importante appuntamento. 

E’ così che abbiamo deciso di venire incontro 
alle esigenze di coloro che, pur essendo som- 
mersi da altre occupazioni, non esitano a dedi- 
care parte del loro prezioso tempo al computer. 

Il programma di querste pagine, infatti, visua- 
lizza sul bordo inferiore dello schermo un preci- 
so orologio dotato di sveglia programmabile a 
piacere. I vantaggi che ne derivano sono nu- 
merosi. 

O non è necessario distogliere lo sguardo da 
ciò che si sta digitando: 

O grazie alla sveglia programmabile risulta "im- 
possibile" saltare gli appuntamenti; 


O essendo situato sul bordo, e non nell’area 
video, l’orologio non sottrae nemmeno una li- 
nea allo schermo; 

Inoltre è intuibile che il programma si rivela 
interessante anche dal punto di vista didattico, 
oltre che pratico, visto che utilizza tecniche di 
interrupt e di raster, gestisce le CIA e gli sprites 
nonché di alcuni fondamentali registri del Vie II. 

I due circuiti di adattamento d^lle interfacce 
del C/64 (le CIA) oltre a gestirne le linee in 
ingresso e in uscita, possiedono un orologio 
completo di ore, minuti, secondi e, addirittura, 
decimi di secondo. 


! Parametro 

CIA 1 

JCIA 2 

Decimi 

56328 

56584 

Secondi 

56329 

56585 

* • 

Minuti 

56330 

j 56586 

Ore e a.m./p.m. 

56331 

56587 


I Parametri e locazioni delle CIA nel C/64 | 

* 

I parametri dell’orologio sona, distribuiti in 
quattro registri consecutivi che, per le rispettive 
CIA, corrispondono alle locazioni indicate in 
tabella. 

Nel nostro programma verrà usato il primo 
dispositivo. 


Lojxju £eiJtoU 

xiav/e bui 
flood... 







filerà ! fPe*, fy\Arcn & , cojm & tate 
lini x& jcL ccvuxiì&u, 
Cfueòtcr i 




18 - Commodore Computer Club 





COPIALO PER TELEFONO 

Anche i listaci presenti in queste pagine possono 
esser tirati gììfper mezzo dei modem; se, ovvia- 
mente, ne possedete uno. 

La procedura per collegarsi con la nostra banca 
dati (attiva 24 ore su 24) è riportata su altra parte 
della rivista.*»*? 9. 

Chi non possiede il modem (che aspettate a 
procurarveldt?ypuò tuttavia richiedere il dischet- 
to, contenenie il software, presso il nostro servi- 
zio arretrati. -,*■ 


Per impostare i parametri deH’orario è suffi- 
ciente trascrivere i valori desiderati nell’oppor- 
tuno registro, tenendo però conto di alcuni ele- 
menti: innanzi tutto si deve sapere che se si 
effettua una scrittura nel registro delle ore, l’o- 
rologio si bloccherà istantaneamente e ripartirà 
solo al momento di una scrittura nel registro dei 
decimi di secondo, mentre se si scrive prima in 
un altro registra verrà eseguita la scrittura, sen- 
za l’arresto dèi dispositivo. 

L’utente hà^.così la possibilità di settare a 
piacimento l'orario, e di farlo partire all’istante 
desiderato, sé avrà l’accortezza di modificare i 
registri partendo dall’ora e finendo con i decimi 
di secondo. ' 

Anche in lettura si ha una situazione analoga; 
se, infatti, leggiamo il registro dell’ora, verranno 
simultaneamente congelati gli altri tre registri 
nel cosiddetto circuito Latch. In pratica questo 
circuito fa sì che le quattro locazioni di memoria 
sopra menzionate rispecchino costantemente il 
contenuto der registri all’istante della lettura del- 
le ore, mentte in realtà l’orologio continua a 
contare normalmente. Con ciò l'utente può leg- 
gere con tutta calmà i vari registri fino a che, con 
una lettura dei decimi di secondo, il Latch verrà 
sbloccato rispecchiando così i valori correnti 
dell’orario. 

Se viene letta un qualsiasi altro registro prima 
di quello delle ore, esso viene letto al volo, cioè 
presentando^ valore istantaneo del parametro 
scelto (minuti, secondi oppure decimi). 


Ovviamente, per leggere e scrivere nei regi- 
stri, si usano le istruzioni Basic Peek e Poke o 
quelle assembly Lda e Sta. 

Passiamo ora a esaminare come, cioè in 
quale formato vanno trascritti i parametri nei 
registri. 


DALLA TEORIA ALLA PRATICA 

Le quattro locazioni considerate hanno una 
particolarità: non funzionano come tutte le altre, 
ma vanno considerate come spezzate in due, 
cioè nei quattro bits alti e nei quattro bassi; i 
primi rappresentano le decine del numero scrit- 
to, i secondi le unità. 


~ ■■ 

BIT 

7654 71 3210 



0011 0101 

= 35 


Infatti, come vediamo nello schema, i bits più 
alti contengono il numero binario 3, mentre i più 


VIETATO Al MINORI 

E’ probabile che i neo-utenti di computer non 
riescano a ben comprendere l'utilità della proce- 
dura software descritta nelle presenti pagine. 
Questa è infatti destinata a coloro che sono già 
padroni delle principali tecniche di programma- 
zione e desiderano approfondire il modo in cui 
un elaboratore organizza i vari dati aù’interno 
della memoria. 

Il programma, pertanto, rappresenta un invito ai 
lettori più esperti, soprattutto a coloro che, con- 
siderando il listato come una base di partenza, 
riescano a pervenire a procedure più interessan- 
ti e capaci, magari, di offrire applicazioni di più 
ampio respiro. 

Se hai incominciato da poco, comunque, non 
scoraggiarti! Tutti coloro che, oggi, vantano una 
particolare competenza nei campo dell’informa- 
tica hanno iniziato con un banale Print "Pippo". 
Perchè non dovresti riuscire anche tu?... 


Per settare 

correttamente 

l’orologio e 

la sveglia è 

necessario 

attenersi 

alla 

procedura 
descritta per 
evitare 
"regolazioni" 
imprecise * 



Commodore Computer Club - 19 





Il settimo bit 
della 
locazione 
56331 è 
incaricato di 


tener conto 
del formato 


AM/PM 



bassi il numero 5. Quindi; per scrivere il numero 
correttamente, non dobbiamo scrivere (per i 
minuti, ad esempio)... 

.Poke 56330, 35 
...bensì.,... 

Poke 56330, 3 * 16 + 5 * : ..." 

...poiché solo così il Sverrà scritto nella metà 
(in gergo: nibbio) alta del byte e il 5 in quella 
bassa. 

La locazione delle ore presenta una piccola 
differenza: in essa, infatti, il bit 7 fornisce l’indi- 
cazione AM/PM; se il bit è a uno, l’ora è da 
considerarsi pomeridiana (dopo mezzogiorno); 
viceversa è antimeridiana (prima di mezzogior- 
no). 

Esempio; 


Bit V 

7654 

3210 


1001 

0001 


Poke 56331, 128 + (1 * 16) +1 

Con ciò avete inserito, nel registro, una deci- 
na ed una unità, che insieme indicano le ore 
undici ; avete inoltre settato l’indicatore su PM, 
quindi si intenderanno le undici di sera. 

Perchè il dispositivo funzioni correttamente 
c’è da tener presente un’ultima cosa: il disposi- 
tivo necessita, per problemi di sincronismo, del- 
la frequenza della corrente di rete che, in Italia, 
è di 50 Hertz; dal momento che la CIA è settata 
per default sui 60 Hertz (paesi angloamericani) 
bisogna settare a uno l’apposito bit della loca- 
zione 56334 ( 56590 per CIA 2), e per la preci- 
sione il bit 7, mediante una semplice... 

Poke 56334, Peek (56334) Or 128 

Se lasciassimo il bit a zero, accadrebbe che... 
un secondo non durerebbe un secondo, ma 
molto di più! 


ALLARME! 

Come accennato inizialmente, il programma 
fa uso di un’altra caratteristica del dispositivo 


TOD (Time Of Day- tempo del giorno = il nostro 
orologio!) e cioè óeW allarme programmabile. 

Infatti il registro 15 della CIA 1, allocato in 
56335, (56591 per CIA 2), contiene un bit, l’ot- 
tavo,, che, se impostato, permette di regolare 
l’allarme agendo sulle medesime locazioni pri- 
ma esaminate per l’orario. Anche il formato con 
cui inserire il parametro resta immutato, come 
anche la possibilità di determinare se si tratti di 
ora pomeridiana o antimeridiana mediante il bit 
7 del registro delle ore. 

Un esempio: . 1 ■- ** 

Supponiamo di voler programmare la sveglia 
alle 7 e 30 del mattino. 

Poke 56335, Peek (56335) Or 128 : Rem imposta 
modo sveglia 

Poke 56331 , 7: Rem AM + 0 decine e 7 unità 
Poke 56330, 3* 16 + 0: Rem 3 decine 0 unità 
Poke 56329, 0: Rem 0 secondi 
Poke 56328, 0: Rem 0 decimi di secondo 

Una volta settata la sveglia, si riporta a zero 
il bit, prima impostato, con... 

Poke 56335, Peek (56335) And 127 
...per riavere il controllo dell'orario; nell’istan- 
te in cui l’orario eguaglia il valore inserito nell’al- 
larme, il dispositivo imposta ad uno il terzo bit 
della locazione 56333 (56589 per CIA 2) per 
avvisare l’utente, il quale agirà di conseguenza; 
è possibile far sì che il dispositivo generi anche 
una richiesta di interruzione, oltr,e che settare il 
bit appena esaminato, permettendo, magari, 
l’esecuzione automatica di una routine apposi- 
tamente scritta. _ " 

Per ottenere questo è sufficiente abilitare l’in- 
terruzione d’allarme scrivendo a uno contempo- 
raneamente il bit 7 e il bit 2 della 56333 median- 
te l’istruzione... 

Poke 56333, Peek (56333) Or 132 
La locazione 56333 contiene infatti un regi- 
stro vitale della CIA1 e cioè il registro di controllo 
degli interrupt provenienti dai vari dispositivi 
dell'Interfaccia; vi sono cinque diverse sorgenti 
di interruzione nelle CIA e precisamente: 

1) timer a ' . . 


"Cotne òftdv-i’ ò 



l.>>\ 'Ai 
-r.'vV ; 


20 1 , Commodore Computer Club 





2) timer b ,c 

3) allarme 

4) porta seriale 

5) «ag 

Esse sono ‘disposte nel registro come nella 
tabella riportata in queste pagine. 


Bit. 

Contenuto 

0 ■ 

limerà 

1 

. 

Timer b 

2.,. 

Allarme 

3 

Ps 

4 

Fig 

or 

5 

non usato 

ah 

non usato 

7* h 

Imposta / Cancella 


Quando scriviamo in questo registro, abbia- 
mo la possibilità di mascherare, o meno, una 
qualunque di Queste sorgenti, facendo sì che, 
al momento della richiesta di interruzione, que- 
sta possa giungere fino al microprocessore 
(che si "interromperà'’) o venga bloccata. 

Per abilitate l’interruzione bisogna, come 
avrete intuito; settare a uno contemporanea- 
mente sia il bit della sorgente prescelta, sia il bit 
7; se scriviamo a uno solo il bit della sorgente, 
essa verrà màécherata e non provocherà inter- 
ruzioni della CPU. 

In lettura, ifr qualunque caso, la sorgente di 
interruzione, àì momento della richiesta, setterà 
almeno il proprio bit della locazione 56333, 
cosicché basta leggere costantemente il regi- 
stro e controllare quale sorgente chiede l’inter- 
ruzione. 

Nel nostro caso, se controlliamo il bit 2, ci 

accorgiamo di sicuro se è scattato l’allarme. 

ni 

Ttek 

IL DEMOftN BASIC 

Il nostro ptetjramma Basic, unito alla routine 
in linguaggio macchina, provvede all’esecuzio- 


ne di tutte le regolazioni finora esaminate; l’u- 
tente dovrà solo inserire l’ora corrente e la 
sveglia, da digitare nel formato HHMMSS cioè 
usando due cifre per ciascun parametro senza 
separazione tra l’uno e l’altro; inoltre le ore 
vanno da 00 a 23, tipico dei paesi europei, a 
differenza di quelli angloamericani che presen- 
tano la differenza tra AM e PM. 

Per esempio, se alla richiesta della sveglia 
digitassimo 033000, ci sveglieremmo nel cuore 
della notte! 

Il programma visualizza, sul bordo inferiore 
dello schermo, l’orologio che indica l’orario ap- 
pena settato e chiede di premere S per farlo 
partire; una volta azionato, non ci rimane che 
digitare New e iniziare serenamente la digita- 
zione del nostro nuovo programma, certi che, al 
momento giusto, il nostro fedele C/64 ci avvise- 
rà che, ahimè, il tempo è scaduto. 


LA ROUTINE L. M. 

*% *• 

Passiamo ora ad una descrizione più tecnica 
e dettagliata del programma Basic e della rou- 
tine l.m. La tecnica per far sparire il bordo 
inferiore e superiore è stata già ampiamente 
esposta dal Lorenzo Emilitri su un altro numero 
della rivista e ci sembra quindi superfluo dilun- 
garci su essa: basti ricordare che tale tecnica si 
basa sul fatto che si inganna il Vie facendogli 
credere di aver già disegnato il bordo. 

Inoltre è stato «necessario spostare l’editor di 
schermo nel banco Vie 3 (posizionato da 491 52 
a 65535), visto che il raster riempirebbe la parte 
di bordo ora resa visibile con il contenuto del- 
l’ultima locazione del banco attuale del Vie; 
questa locazione, normalmente, è la 16383, 
cioè nel bel mezzo della Ram Basic, e per 
ragioni estetiche conviene che contenga zero in 
modo che non compaiano delle bande nere. 
Così facendo, però, i programmi Basic dovreb- 
bero terminare ben prima della 16383, renden- 
do inutilizzabile oltre metà della Ram disponibi- 
le. Cambiando il banco del Vie dallo 0 al 3, 




La locazione 
56334 è di 
vitale 

- v 

importanza 

perla 

"scansione" 
del tempo 





v : La 
manipolazione 
del Raster 
consente di 
visualizzare 
gli sprite sul 
bordo del 
video 


vi è • aJ v 1 



’ 


l’ultima locazione del banco diviene la 65535 e 
azzerarla non comporta alcuna conseguenza. 

I dati per i "disegni" delle dieci cifre necessa- 
rie per visualizzare l’orologio (da 0 a 9) e del 
carattere separatore del doppio punto (:) ven- 
gono prelevati direttamente dalla Rom dei ca- 
ratteri e riversati in una zona Ram a cui, poi, 
indirizzeranno i puntatori agli sprites che ora si 
trovano a partire da 49152 + 2040 a 49152 + 
2047. Le righe del programma Basic che com- 
piono tale operazione sono quelle da 20 a 40: 
dapprima viene azzerata una zona di memoria 
che possa contenere undici blocchi da 64 bytes 
ciascuno, poi gli undici blocchi vengono riempi- 
ti, ognuno, con solo 8 bytes corrispondenti ai 
dati di ciascun carattere, che gli sprites mostre- 
ranno in seguito, per di più ingranditi. 

II programma Basic, inoltre, imposta i para- 
metri del SID e controlla che non vengano inse- 
riti dati errati, come ad esempio la digitazione di 
76 alla richiesta dei minuti. 

La routine in l.m. è divisa ovviamente in due 
parti, la seconda delle quali gira sotto interrupt. 

La prima parte provvede a spostare i punta- 
tori degli interrupt, ad abilitare le interruzioni di 
raster, a ingrandire e posizionare gli sprites, a 
copiare i caratteri nel banco 3 del Vie e, infine, 
ad inizializzare alcune locazioni. 

La seconda parte si occupa di far scomparire 
il bordo, di controllare l’interruzione d’allarme, 
di consultare i quattro registri dell’orario (e por- 
ne i valori letti nei puntatori agli sprites), e di 
saltare all’inevitabile $EA31 . 

Vi è infine una subroutine che viene chiamata 
al momento dell’allarme e fa sì che venga pro- 
dotto un tipico BIP - BIP che dura undici secondi 
(dal secondo 0 al secondo 10). Questa parte 
funziona in modo molto semplice: là routine di 
interrupt viene chiamata dal raster ad ogni 
schermata (e quindi con una frequenza di circa 
50 Hertz). Se è scattato l’allarme, anche la 
subroutine del BIP - BIP viene chiamata 50 volte 
ogni secondo; noi non abbiamo fatto altro che 
incrementare una locazione, ad ogni chiamata, 
sapendo solo che, quando fosse arrivata al 
valore 50 voleva dire che era passato un secon- 


do; inoltre abbiamo ulteriormente suddiviso i 
cinquanta cinquantesimi di secondo in modo da 
produrre un doppio BIP accendendo o spe- 
gnendo il suono agli opportuni valori dei cin- 
quantesimi di secondo. 

Un’altra locazione controlla che ciò avvenga 
solo per undici secondi. Analizzare il disassem- 
blato aiuterà a capire meglio il funzionamento 
della subroutine. 

Ed ecco qui che spunta fuori una curiosità che 
riteniamo siano ben pochi a conoscere, com- 
presi anche i più esperti programmatori in l.m. 

Se si pone la sveglia ad un qualsiasi orario, 
ma con i secondi a 00, l’allarme suonerà anche 
per il minuto successivo a quello stabilito. 

Questo dipende dal fatto che quando i secon- 
di del minuto in cui è suonato l’allarme passano 
da 59 a 00, il dispositivo TOD impiega qualche 
frazione di secondo per incrementare di uno 
anche i minuti e, per tale durata, l’orario risulta 
identico a quello del minuto precedente; il regi- 
stro di interruzione della CIA, allora, ri-resetta a 
uno il bit dell’allarme e il nostro programma 
riesegue la subroutine del BIP - BIP. 

Questo, però, non è affatto un inconveniente, 
anzi è un buon rimedio per ricordare (a chi si 
fosse soffermato sulla tastiera per concludere 
"quell’ultima riga di programma”) che è proprio 
ora di smettere. 

Comunque, se questo fatto invece creasse 
dei fastidi, è ovviamente possibile far sì che 
l’allarme suoni una sola volta. .9 

E’ infatti sufficiente porre la sveglia con i 
decimi di secondo non a zero, ma a 4 oppure a 
5, per dar tempo al TOD di incrementare, in tale 
lasso di tempo, anche i minuti; oppure, nel caso 
del nostro programma, basta settare la sveglia 
con i secondi diversi da zero, ad esempio a uno: 
in questo caso l’allarme suonerà una volta sola, 
ma un secondo dopo il minuto preciso, cosa 
questa di insignificante rilevanza^ 

Per concludere dobbiamo confessare una 
piccola pecca del programma in linguaggio 
macchina: esso infatti, nella parte che gira sotto 
interrupt, risulta di qualche ciclo più lungo del 
normale. — 



4 


Questo fa sì che ogni tanto, nel momento in 
cui si impartisce la Sys di partenza, il program- 
ma. non parta sincronizzato e dopo qualche 
millesimo di secondo si blocchi. 

Nonostante le probabilità che il programma 
non parta al primo colpo siano decisamente 
piccole, (circa 1 volta su 1 5), ci è parso comun- 
que doveroso informarne i lettori, i quali non 
hanno nulla di che preoccuparsi, visto che l'in- 
chiodamento non è mai definitivo. 

Basta infatti eseguire le seguenti operazioni 
per riavere il controllo del cursore: 
su: * 

1 ) battere Run / Stop + Restore 

A questo punto si dovrebbe notare un cam- 
biamento di ciò che è visibile sullo schermo. 

2) digitare ALLA CIECA : Poke 648, 4 e batte- 
re il tasto Return. 


PER I PIU’ BRAVI 

. . . .10 

L avorando con Nnterrupt può capitare di 
scrivere routine molto lunghe e comples- 
se. 

In questi casi sorge immediatamente una 
difficoltà, legata direttamente alla stessa tec- 
nica che figura alla base della gestione del- 
Plnterrupt. 

In pratica, ogni sessantesimo di secondo il 
computer interrompe qualsiasi operazione e 
"salta" ad eseguire una particolare routine 
(posta, nel caso del C/64, a partire da $EA31 ) 
che sovrintende a particolari funzioni, vitali 
per l’elaboratore. 

Dal momento che tale routine necessita di 
un certo tempo per essere eseguita, è eviden- 
te che questa "deve" essere sufficientemente 
breve per fare in modo che il calcolatore 
elabori anche il programma dell’utente. 

In altre parole, supponiamo di suddividere 
la durata di un sessantesimo di secondo in 
dieci parti eguali. Se la routine di Interrupt 
presenta una durata di tre parti, vuol dire che 
«q 


Compariranno la scritta Ready e d il cursore; 
a questo punto potete ridare il Run e, a meno 
che non siate la sfortuna fatta persona, dopo 
aver reinserito ora e sveglia, comparirà final- 
mente il vostro stupendo orologio digitale. 

A nostro parere lo spiacevole inconveniente 
è dovuto alla eccessiva lunghezza (che non ci 
è stato possibile ridurre, pena la perdita di no- 
tevoli prestazioni del programma) della routine 
di interrupt; ma non essendone certi, se qualcu- 
no scoprisse che il motivo è un altro (e trovasse 
un rimedio efficace), potrebbe sempre comuni- 
carlo ai lettori (noi compresi), mediante la rubri- 
ca della posta di C.C.C. o in un apposito artico- 
.lo.Quello che (speriamo) verrà scoperto sarà 
comunque, a nostro parere, di notevole valore 
didattico e insegnerà qualcosa anche ai pro- 
grammatori più esperti. 


il computer dedica, in definitiva, il 70% del 
tempo per elaborare il programma dell'utente 
ed il 30% le "proprie" routines. 

Se,' invece, l’Interrupt richiede 4. parti, il 
tempo di elaborazione dell'utente scende al 
60%. Al limite, con una durata di Interrupt di 
10 parti, non vi sarà tempo per elaborare il 
programma utente ed il computer penserà 
solo... a se stesso! 

Come fare, quindi, per dirottare la routine 
di Interrupt e fare in modo che elabori nostre 
routines l.m. lunghe e complesse? 

Semplice: è sufficiente "spezzare” tali rou- 
tines ed elaborarle una alla volta, interruzione 
dopo interruzione. Supponendo di voler trat- 
tare due routines (alfa e beta) troppo lunghe 
per essere elaborate in un solo ciclo, alla 
prima richiesta di Interrupt verrà elaborata 
alfa, alla successiva beta: poi di nuovo alfa e 
così via. 

Una qualsiasi locazione di memoria Ram 
può funzionare da "deviatore". 


Non bisogna 
dimenticare 
che, al 
termine di 
una routine 
che altera 
/’ interrupt ; 
l’ultima 
istruzione 
deve essere 
un "salto" a 
$EA31 


I ceneri si |>°sà ; sla corre* 
do ancora mollo veloce, quand 


Ed ora on'allra! Helb, 

Primo , cosà succede 



Commodore Computer Club - 23 






X . L' 

cP* 





1 rem •••••••••••••••••••••••»••••••• 

8 rem •• bordar clock 

3 rem •• di 

4 rem ••paolo monti & edmondo Fichera 

5 rem •• copyright 1990 

6 ram •••••••••••••••••••••••••••••*• 


10 print "a”; : printtabCB)"»- aspatta 399” 
15 print "caricamento dati" 

20 b* 49152*2040 : b*53248«- (48*0) : q*0 
25 f or i*0to( 64*11) : pokaa+i ,0: naxt 
30 poke55334 , 0 : pokal , peak ( 1 )and251 
35 Fore-0tol0:forw-0to7 

37 pokea-K64»a)-Kii>«3) , peek(b+w*-Ce«8) 1 

38 naxtw.a 

40 pokal , peak C 1 )or4: poke56334 > 129 
45 c*0 : Fori“0to399: reada : print "■~i 
47 poke49152«-i,a:c*c*a:naxt 
50 ifc<>49507thenprint "errore" : and 
55 81*54272 : pokesi+24 , 15 
57 pokesi+l , 240: pokesi+6, 240 
60 poke49152+2046 , 42 : poke49152+2047 , 42 
65 print "fl” 

70 input "inserì re orario C hhmmss 1 " ; hS 
7S if len(hSX>6then70 
00 or-0:aosubl80: ifar<>0than70 
85 gosub200 
90 print "a” 

95 input "inserirà sveglia (hhmmss)";hS 

100 iflenChSX>6then9S 

110 ar*0: gosubl80: if er<>0then95 

120 pokeS6335, peekC 56335 lor 128 : oosub 200 


122 poke5633S, peak (56335 land 127 
• 125 s U s491S2 

130 print’^rami ’s* par far ” ; 

133 prlnt"partira l'orologio" 

135 getaS:lfaS-""thenl35 
140 ifaS-"s"thanl50 
145 goto 135 

1S0 poka5632B,0: print "okl print 

179 end 

180 fori-lto6:zSCi)-mldSChS, i.l) 

182 zC i)-valCzSC il): naxt 

185 hr-z(l)*10*z(2) 

187 ifhr<0orhr>23thaner*l : return 
190 m-zC3)*10-z(4):a-zC5)*10*zC6) 

192 ifm<0orm>59ors<0or3>59thanar-l : return 
195 return 

200 poke56329, z(5)*16«-z(6) 

205 poke56330, z(3)*16*z(4) 

210 pm-0: ifhr>*12thenpm*128: hr-hr-12 

213 ifhr-0thenhr-12 

21S ql-int Chr/10) : q2«hr-(ql*10) 

220 poke56331 , pm+Cql*16Xq2 
225 return _ i 

997 rem ••••••••••••••••••**••••••• 

938 ram ••• data routine l.m. ••• 

999 rem ••• ••• 

1000 data 120,169,157,141, 020 , 003 , 169 

1001 data 192,141,021,003,169,001,141 

1002 data 026,208,173,017,208.041,127 

1003 data 141,017,208,169,248,141,018 

1004 data 208» 169. 000.170,168^05,129 

1005 data 193,153,000.208,130.200,153 



) 'ivv j fvr-'' . 

24 - Commodore Computer Club 









1033 data 101 . 252. 141 . 2S3, 199, 130. 032 
103*1 data 066 . 193 , 024 , 101 , 253 , 201 , 0*1? 

1035 data 144,011 ,056.233.010. 141. 2S2 

1036 data 199.230,253,199.016.003.1*11 

1037 data 252, 199, 173, 010, 220 , 032,054 
1036 data 193, 032, 066 , 193, 1*11 , 2S1 , 199 
1039 data 138, 032, 068, 193, 141 . 250, 199 
10*10 data 1 73, 009 ,220, 032, 054. 193,032 
10*11 data 868, 193 , 141 , 2*13, 199, 138 , 032 
10*12 data 068.193,141,2*18.199.173.008 

1043 data 220. 169, 001 . 141 . 025 . 208 , 076 

1044 data 049.234.133,251.041.015.170 

1045 data 16S, 251, 04 1,240, 074, 074, 074 

1046 data 074,096,024.105.032.096.230 

1047 data 163.165,163,201,003,176,007 

1048 data 169.017,141,004,212,016.041 

1049 data 201.006,176,007,169.016,141 

1050 data 004,212,016.006,201.009.176 

1051 data 245, 144,232, 165, 163, 201, 0S0 

1052 data 144,018,230, 164, 165, 164,201 

1053 data 011 , 144,006, 169,000, 133, 002 

1054 data 133,164,169,000.133.163.096 

1055 data 136,000,120,000.088,000,072 

1056 data 000,040,000,024,000,104.000 

1057 data 056 

1058 and 


1006 data 000.208.200.192.016.206.240 

1007 data 169.005.157,039.206.232.224 

1008 data 008.208,248, 169, 2S5, 141, 023 

1009 data 206.141.029.208.141.021.208 

1010 data 169.000.133.002.133,163.133 

1011 data 164.162.000.160.016.169.003 

1012 data 133.001,189.000.208,072,169 

1013 data 004,133.001,104.157.000,208 

1014 data 232.208.237.238.088.192,230 

1015 data 097. 192, 136, 208, 228, 169, 05S 

1016 data 133,001 . 169.208. 141 .088, 192 

1017 data 141. 097, 192, 169, 148, 141. 00e 

1018 data 221.169,196.141,136.002.169 

1019 data 000,141.255.255.169.128,141 

1020 data 014,220, 169, 147, 032, 210, 2SS 

1021 data 169,042, 141,254, 199, 141, 2SS 

1022 data 199.088.096.173,017.208.041 

1023 data 247, 141 .017.208, 162.048,202 

1024 data 208.253.009.008.141,017.208 

1025 data 165, 002 .240 . 003, 032, 072, 193 

1026 data 173.013.220.041,004.240.004 

1027 data 169.001.133,002.173,011.220 

1028 data 170, 016 . 010, 169 . 001 . 133. 2S2 

1029 data 169.002.133.253.016.006,169 

1030 data 000.133,252,133,253,138.041 

1031 data 127.201,018.208.002.169.000 

1032 data 032,054, 193,032,068. 193,024 


Commodore Computer Club - 25 


+ M ; 







DI SASSEMBLATO BORDER-CLOCK 
di 

E. Fichera Douglas & Paolo Monti 
Copgright 1990 


c 000 sei 


Ida ttS9d 

modifica 

sta *0314 

i puntatori 

Ida MSc0 

di IRQ 

sta S0315 


Ida «S01 

abilita le 

sta Sd01a 

intarrupt di rastsr 

Ida Sd011 

posiziona 

and #S7f 

1 * interruzione 

sta Sd011 

alla 

Ida »Sf8 

linea 24B (Sf8) 

sta Sd012 

dello schermo 

Ida «S00 

azzera registri 

tax 


tag 


C021 Ida Sciai, g 

legge dalla tabella 

sta Sd000,g 

a scrive la posiz. 


’x* dello sprite 

txa 

azzera acc. 

. inu 


sta Sd000,g 

scrive ’0' nelle 


’g a dello aprite 

ing 

prossimo sprite 



CPU 

«S10 

ha finito? 



bne 

Sc021 

no, salta 



Ida 

«105 

colora di verde 


.C033 

sta 

Sd027 , x 

tutti gli sprites 



inx 





cpx 

#108 

ha finito? 



bne 

Sc033 

no, salta 



Ida 

#*ff 

• *o 



sta 

Sd017 

espansione vart . 



sta 

Sd01d 

espansione orizz. 



sta 

Ida 

Sd015 

«S00 

abilita B sprites 



sta 

*02 • 

azzera avvisatore 





di allarme 



sta 

Sa3 

azzera contatore 
50esimi di secando 



sta 

Sa4 

azzera contatore 
dai 10 secondi di 
durata allarme 



ldx 

#S00 

prepara copia 



ldg 

#*10 

caratteri 


. c052 

Ida 

#*03 

abilitabROM 



sta 

*01 

caratteri 


. C056 

Ida 

Sd000,x 

legge dàto caratt. 


. c059 

pha 


e lo salva 



Ida 

#S04 

riabilita zona RAM 



sta 

S01 

da Sd000-a Sffff 



pia 


riprende dato 


. c05f 

sta 

Sd000 , x 

lo scrive in RAM 


. C062 

inx 


d^to successivo 



P»J lohfcftt j al» £|IVi piloti discolo* 


... cerio che qoeslo volo 
òlleft&metìlb e oh 


d egeh 




voi , 


26 - Commodore Computer Club 






00 , 00 , 0 *; 


Ih effetti/ coh là vittori* d» Ice. 
hnàh d GÈ£ il Volo Si conclu- 
de ih modo |x>co ortodosso... 
Nei giorni successivi tuttavia si 
SVofgorjo voli di addestramento 
dall'esito certamente, t>iù briltan 

te, cometa far beh sberareif 

buon Primo sull'esito della «ara. 

H - -i , 

L « . « . ». . .ti .1 MWII J. 

l»orho... 


Seguono le due portaerei sfidan 
h,cbe starno ultimando t tre* 

t*r*hvi ... 


bne $c052 
Ine 9c058 
ine 9c061 

dey 

bno 9c0S2 
Ida «937 
sta 901 
Ida «9d0 
sta Sc050 
sta 9c0Sl 
Ida #994 
sta Sdd00 
Ida #9c4 
sta 90288 

Ida #900 
sta 9FFFF 
Ida S 980 
sta Sdc0e 
Ida «993 
jsr 9fFd2 
Ida N92a 
sta 9c7Fa 
sta 9c7FF 
eli 
rts , 


{controlla se ha 
{Finito la •pagina* 
{incrementa 'pagina* 
{di lettura 
-, incremsnta 'pagina* 
{di scrittura 

;ha Finito? 

{no, salta 
{ripristina il 
{ valore di deFault 
{ripristina 'pagina* 
j in lettura , 

;e in scrittura 
{abilita banco 3 
;del UIC 

{sposta 1 'editor 
{di schermo nel , 
{banco 3 

{azzera ultima 
{ locazione banco 3 
{Spagne il 
{ TlflER 0 

{pulisca lo schermo 
; CSHIFT+CLR/HOME) 
{posiziona gli 
{Spritss 7 e 8 sui 
; ‘due-punti * 


ROUTINE SOTTO INTERRUPT 
Routine chs Fa scomparire il bordo 


c09d Ida Sd011 
and «9F7 
sta Sd011 
ldx «930 
c0a7 dex 

bna 9c0a7 
ora «908 
sta 9d011 

Ida 902 


bsq 9c0b6 
Jsr 9cl48 
c0bB Ida 9dc0d 

and «904 

beq 9c0cl 
Ida «901 
sta 902 
c0cl Ida 9dc0b 
tax; 

bpl 9c0dl 
Ida «901 
sta 9Fc 


setta il modo 
24 righe 

ciclo di ritardo 


{risetta il modo 
{25 righe 

{controlla ss dove 
;Far suonare 
{ l 'allarme 
ino, salta avanti 
;si’, esegua routine 
{ legge registro di 
{controllo interrupt 
{e* scattato 
{ 1 * allarme? 

;no, prosegue 
{si*, attiva registro 
{avvisatore allarma 
{ legge regista ore 
ilo pone in x 
{salta se a * Ah 
{scrive una decina 
;n#l registro decine 


Commodore Computer Club - 27 









Ida 

**02 


sta 

SFd 


bpl 

Sc0d7 

c0dl 

Ida 

*S 00 


sta 

Sfc 


sta 

*fd 

C0d7 

txa 



and 

•S7f 


cmp 

«S12 


bne 

SC 0 B 0 


Ida 

*S00 

C080 

J» r 

Sci 36 


Jsr 

*cl44 

eie 


adc 

Sfc 

sta 

Sc7fd 

txa 


jsr 

Se 144 

eie 


adc 

Sfd 

cmp 

*S2a 

bcc 

Scl02 

sec 


sbe 

*S0a 

sta 

Sc7fc 

ine 

Sc7fd 

bpl 

Se 105 

cl02 sta 

Sc7fc 


scrive due unita* 
nel registro unita* 
salto Forzato 
scrive zero 
in decine 
e unita' 
riprende ora 
azzera Afl/Ptl 
confronta con le 12 
salta se e' diverso 

salta alla routine 
che separa decine e 
unita* in A e X 
salta alla routina 
che aggiunge S20 

aggiunge o 0 o 1 
scrive in decine 
prende unita’ 
aggiunge S20 

aggiunge o 0 o 2 
confronta con le 10 
salta se > di 10 
altrimenti 
sottrae 10 
e scrive in unita’ 
e incrementa decine 
salto forzato 
scriva unita’ 


C10S 

Ida 

Sdc0a 


jsr 

Scl36 


J st- 

Scl44 


ata 

txa 

Sc7fb 


Jsr 

Scl44 


sta 

Sc7fa 


Ida 

Sdc03 


J sr 

Se 136 


jsr 

Scl44 


sta 

txa 

Sc7f B 


jsr 

Scl44 


sta 

Sc7f B 


Ida 

Sdc08 


Ida 

»S01 


sta 

Sd019 


jmp 

Sea31 

cl36 

sta 

Sfb 


and 

*S0F 


tax 



Ida 

SFb 


and 

*Sf0 


lsr 



lsr 



lsr 



lsr 



rts 


Cl44 

eie 



adc 

**20 


rts 



SUBROUTINE 

cl48 

ine 

Sa3 


Ida 

Sa3 


cmp 

*S03 


bea 

Scl57 

C150 

Ida 

•SII 


sta 

Sd404 


bpl 

Se 180 

C1S7 

cmp 

•S06 


bea 

Scl62 

clSb 

Ida 

•S10 


sta 

Sd404 


bpl 

Sci 68 

cl62 

cmp 

•S09 


bea 

Scl5b 


bcc 

Se 150 

cl6B 

Ida 

Sa3 


cmp 

•S32 


bcc 

SclB0 


ine 

Sa4 


Ida 

Sa4 


cmp 

#S0b 


bcc 

Scl7c 


Ida 

*S00 


sta 

S02 


sta 

Sa4 

cl7c 

Ida 

• S00 


sta 

Sa3 

c!80 

rts 



TABELLA 

CIBI 88 00 76 00 
clB9 28 00 1B 00 


legge i minuti 
separa 

aggiunge S20 
scrive decine 
prende unita’ 
aggiunge S20 
scrive unita’ 
legge secondi 


scrive decine 


scrive unita * 
sblocca il latch 
conferma 
1 ’ interrupt 


; salva registro 
; separa le unita' e 
;le pone in X 
; riprende registro 
; separa decine 
;le sposta sul 
; nibbio 
; di destra * 

• . ! 

; ritorna 

I 

{aggiunge *20 per 
{puntare all’area 
{ sprites 

• 

DI SUONERIA 
» 

{incrementa S0esimi 
{pone in A i SCesimi 
{confronta con 3 
;salta se > di 3 

* 

• 

{accende suono 
; salto forzato 
{confronta con 6 


; spegno suono 
;salto forzato 
{confronta con 3 
; se a ’ > non suona 
; se e ’ < suona 
{legge 50ssiml 
{Siamo a 50 50esimi? 
; no , salta 
;increm. contatore 
;ha suonato per 11 
; secondi? 

{no, salta 
;se si* azzera 
{ l 'avvisatore 
; e il contatore 
i 

{azzera 50esiml 


5B 00 4B 00 
68 00 38 00 


i«C> - r » • 


Irvs^iegètìlmehle^lcuhi èerei 
soho già »h volo 6 compiere, 
& voi ottoni ... 



28 - Commodore Computer Club 


Usr! fi è cjuei^ jef sobo 
hostri ? E' gii in corso, 



bore, quello e SolkhtcN^| 
bEnO: lo dì safriVièito© sitilo! 

r 








. 





VELOCE 


Una brevissima routine in Basic 7.0, senza Peek, Poke e Sys, che 
batte in praticità (e velocità) le complesse procedure in linguaggio 

macchina 


di Fabrizio Asruffi 


Una routine 
in Basic 
può essere 
veloce 
(quasi) 
come una 
complessa 
routine il 
linguaggio 
macchina 


Nondimeno alcuni lo definisco "limitato", ed 
è vero. Una di queste limitazioni, ad esempio, 
è il fatto che non esiste un’istruzione specifica 
per trasferire la pagina grafica su carta, cosa 
molto utile soprattutto se si tratta di diagram- 
mi, scritte, grafici, etc. 


U no dei motivi che fanno pensare al C/128 
come ad un personal computer di livello 
superiore a quello del C/64 è il fatto che pos- 
siede un interprete più evoluto, il Basic 7.0 
che, tra l’altro, permette di effettuare disegni in 
alta risoluzione molto facilmente. 


^iìI knhho i bibK sono bronh ... I cercale, di Care belU Cbutà 




...vedi di ho* osare il Erborò 
mè di gra fica vettoriale solida 

ih Basic. , con SIN e CQ5 , dì cui 

mi hai barìaFo Sdirebbe u* \>o 

TROPPO LENTO .. 





Commodore Computer Club - 29 





La routine di 
queste 
pagine, 
priva di Sys, 
Pokee 
Peek, si 
adatta ad 
essere 
"trasportata" 
in vostri 
programmi 
Basic 


Di conseguenza si è costretti ad arrangiarsi 
per conto propio, decorrendo a metodi più o 
meno complessi, ma che in basic si sono 
sempre rivelati, fino a ieri, lentissimi. 

Cosicché, per avere risultati accettabili, bi- 
sognava ricorrere a brevi ma complicate rou- 
tine in L.M.. 

Ma siamo sicuri che siano proprio le più vel- 
oci ? 


LA TEORIA 

Abbiamo spesso parlato delle caratteristiche 
con cui la stampante permette di ricevere e 
stampare i codici grafici (ampliamente e in 
modo dettagliato sul C.C.C. numero 50, di 
conseguenza diamò per scontate quelle infor- 
mazioni, riprendendo solo i punti principali nel 
caso sia neccessario. 


GSHAPE E SSHAPE 

Passiamo alla descrizione delle istruzioni 
Sshape / Gshape , la cui sintassi è ormai co- 
nosciuta da tutti, ma nessuno si è mai chiesto 
come facciano a memorizzare una zona del 
grafico in una variabile stringa. 

Per quanto riguarda l’istruzione Sshape 
( Gshape è la corrispondente funzione oppos- 
ta, ma si basa sullo stesso principio), una 
volta impartita, dobbiamo immaginare che 
suddivida l’area del grafico indicata in tante 
righe (ognuna alta un pixel) le quali, a loro 
volta, sono suddivise in tanti settori da otto 
pixel partendo da sinistra. 

A questo punto, tenendo presente che a 
pixel acceso corrisponde 1 e a pixel spento 
corrisponde 0, muovendosi proprio come se 
stesse leggendo, memorizza i vari settori con 
un codice compreso da 0 a 255 e li memoriz- 
za nella variabile stringa sotto forma di codice 
Ascii. Nel caso in cui le righe siano costituite 
da un numero di pixel non multiplo di 8, quan- 
do l’istruzione legge l’ultimo settore di ogni 
riga (che sarà, quindi, costituito da un numero 
di pixel minore (7, 6, 5, 1)), lo legge comun- 


que come un codice "normale", dal momento 
che suppone alla sua destra un numero 0 in 
grado di far sembrare anche quel settore cos- 
tituito da 8 pixel. 

Quando verrà chiesto di ridisegnare, in 
quello stesso punto o in un altro, quell’area 
(tramite l’istruzione Gshape), non terrà conto 
degli zeri aggiunti, altrimenti potrebbe danneg- 
giare un altro disegno eventualmente già 
presente. Per far ciò, ma non solo per questo, 
l’istruzione \Sshape, dopo aver terminato di 
memorizzare la zona indicata, in fondo alla 
stringa aggiunge le coordinate relative del ri- 
quadro memorizzato: .... XI, X, Y1, Y, in cui X 
e Y sono le coordinate relative dell'angolo su- 
periore sinistro (solitamente, quindi, corrispon- 
dono a 0, 0), mentre XI e Y1 sono quelle 
dell’angolo opposto. 


IL PROGRAMMA 

A questo punto basta fare 1+1, ed è proprio 
quello che il programma presentato effettua. 

Nella prima parte esegue un semplice dis- 
egno, il quale può essere sostituito con un 
qualsiasi altro grafico da voi effettuato, purché 
generato in Graphic 1 . 

In seguito procede memorizzandolo nel vet- 
tore A$( ). Tramite il ciclo di riga 230 viene 
memorizzato l’intero disegno, suddividendolo 
in fasce di 8 x 200 pixel. 

Come si può vedere, però, il ciclo ha uno 
step di soli 7 pixel per volta, dovuto al fatto 
che la testina della stampante, come è noto, 
può stampare solo fasce di un altezza massi- 
ma di 7 dots. Tuttavia deve ricevere codici di 8 
bit con il più significativo (MSB), sempre posto 
a 1. Ecco, quindi, che si giustifica la presenza 
della riga 240, la quale, prima di memorizzare 
ogni area, traccia una linea sui primi pixel di 
questa. Inoltre il fatto che lo step sia di soli 7 
pixel per volta, fa sì che la linea tracciata non 
"rovini" il disegno. Infatti viene segnata sull’ul- 
timo pixel della fascia precedente, ormai già 
memorizzata nel vettore. ^ 

Una volta memorizzato il disegno, viene ri- 
chiesto a quale periferica lo si vuole inviare, 








flollo bene, Giovedinì . E’ mutile 
Lch e, vi d»c a cjuòhto tenere è vince. 

re lò sfide contro 1 

V= — là Squadri alia di / 

. mìo fratto fì.l.uV 


--.mettetecela tutte . 

e c ^ f)t il Rdstetr sia con voi 




>ercio 


CPU 


■v£ ?2c -V 


30 - Commodore Computer Club 


iiuiiaiii 

i n umilili 







se alla stampante o al video (i simboli in 
reverse presenti prima e dopo la V e la S 
presenti nel Print di riga 280, servono per 
cambiare il colore del cursore da giallo a bian- 
co e viceversa). Per quanto riguarda l’output 
su video, in pratica si mette in atto lo stesso 
ciclo utilizzato per la memorizzazione, evi- 
dentemente eseguito al contrario, senza però 
dover tracciare alcuna linea. 

Per quanto riguarda l’output sulla stam- 
pante, prima di inviare le varie celle del vettore 
occorre escludere le coordinate relative 
presenti in fondo a ciascuna di essa. 

A questo punto è bene elencare alcune note 
relative al listato. 

Dato che le fasce memorizzate dal video 
sono in posizione verticale (mentre la stam- 
pante le dispone sul foglio orizzontalmente), il 
disegno che si otterrà sulla carta risulterà ruo- 
tato di 90 gradi rispetto a quello che appare 
sul video. 

Purtroppo la prima striscia di pixel dell'intero 
disegno, avente coordinate X=0, andrà persa, 
a meno che... 

1 - prima del ciclo di riga 230 si memorizzino i 
pixel in questione, ad esempio in B$: 

Sshape B$, 0, 0, 0, 199 

2- dopo lo stesso ciclo, magari a riga 255, si 
pulisca lo schermo (con Graphic 1, 1) e di se- 
guito si eseguano le tre istruzioni: 

Gshape B$, 7, 0 

Draw 1,0, OTO 0,199 ' -• 

Sshape C$, 0, 0, 7, 199 

3- per completare la visualizzazione sul video 
si riscriva la riga 350 fino a Next, poi alla 
351... 

Gshape B$, 0, 0 

...e alla 352 quello presente sulla 350, ma solo 
da Color 1, 2 in poi. 

4- anche per quanto riguarda la stampa, sulla 
linea 400, tra Next e Slow si deve aggiungere 
l’istruzione ' 

Print # 4, Left$ (c$, 200). 

Naturalmente si può anche pensare di adat- 
tare il listato per lo schermo multicolor 
( Graphic 3), tenendo però presente che per 
ogni pixel acceso valgono due bit, più preci- 
samente: >rr 

ouv . • - • 


00 

color 0 

sfondo 

ioi 

color 1 

primo piano 

10 

color 2 

multicolor 1 

11 

color 3 

multicolor 2 


Un ultimo consiglio è di far girare il program- 
ma, le prime volte, eliminando le istruzioni 
Fast per capire meglio il principio su cui si 
basa il listato. 


PROPOSTE 

La routine pubblicata, interamente in Basic, 
è forse valida anche per il C/16 e Plus/4 dal 
momento che i due interpreti sono molto simili 
al Basic 7.0. 

La velocità di esecuzione consente di ot- 
tenere una copia su carta in appena un minu- 
to (contro un minuto e venti secondi della 
routine L.M. presente su C.C.C. 52). 

Una routine in LM, inoltre, è piuttosto difficile 
da modificare o adattare ad altri programmi, 
specie se questi già contengono segmenti in 
l.m. Il programma risulta ottimo per stampare 
un’intera pagina grafica. Se, però, si modifica- 
no opportunamente i valori di inizio e di fine 
dei cicli di memorizzazione, visualizzazione e 
stampa (e se si modifica la lunghezza e la po- 
sizione di partenza delle fasce di schermo in- 
serite nelle rispettive celle del vettore) si può 
prendere in considerazione qualsiasi porzione 
di schermo. 

Scrivendo un programma specifico dov- 
rebbe esser possibile disegnare, e gestire, 
aree di proporzioni maggiori, suddividendole 
in più zone (es. 640 x 400 costituita da quattro 
zone da 320 x 200 pixel ciascuna, oppure 
costituita da nove zone ciascuna di 256 x 1 60 
pixel in grado di riempire l’intero foglio di 
carta). Si potranno ottenere effetti "speciali" 
grazie alle modalità offerte dall’istruzione 
Gshape ( normale , reverse, or, and, xor). 

Provate, inoltre, ad invertire o modificare le 
coordinate relative con cui salvate un’area di 
schermo; oppure ad invertire la sola sequenza 
dei codici memorizzati. 


Alcune 

semplici 

modifiche, 

suggerite 

nell'articolo, 

potranno 

rendere la 

routine 

stessa 

ancora più 

versatile 


Il giudice Aegis chiama i coman 
I dèh h delle due- havi- 

, siete, brorih beh irueìdve 
■L. : -yla sfida ? 



|Ris)>onde il Cablano PaolUnser... 








Commodore Computer Club - 31 









Il listato, che 
contiene 
anche un 
semplice 
demo, si 
può adattare 
facilmente al 
C/16edal 
Plus/4 

• ■' N ìf# ?**>#*•* " *• A 

grazie alla 
notevole 
similittudine 
esistente 
tra i due 
interpreti 


«t» T 






«E - 




. • • 


10 rem 

BO rem • hard copy flraphlc 1 c/lBB • siui ùuit '- „ 

30 rem •————> by 

40 rem • Fabrizio arsuFFi • 

50 rem —————————————— 

50 : • , 

70 trap 410 ‘ 53 '* 

00 : 

90 rem esempio graFico --------------------------------- 

95 rem inserire - Fast - per una maggiore velocita’ operativa 
100 color4,7: : color0 , 7: graphicl , 1 : colori , 8: color0 , 7 : colorS , 8 

110 X-0: u-160: X0-50: U0-150: xl-102: X2-135 
120 For u-200 to 0 step -20:i-intCu) 

130 x-x+1 : y-y + 1 : y0-y0-l : X0-X0+1 : xl-xl+1 : x2-x2+l 

140 drau 1,0, i to y,x 

150 dratu 1,320,1 to y0,x0 

160 drau 1,0, i to y,xl 

170 drau 1,320,1 to y0,x2:next 

175 drau 1,1,0 to 319,0 to 319,199 to 1,199 to 1,0 
177 circle 1,160,100,100 
100 : 

190 rem inizio della routine hard copy graphic 1 
200 : 

210 rem memorizzazione della pagina graFica 

220 dim aS(45) » - 

230 For i-0 to 315 step 7:ii-i/7 

240 drau l,i,0 to 1,199 

250 sshape aSC ii ) , i , 0, i+7, 199: next 

260 : r 

270 rem richiesta della periFerica su cui inviare l’output 
200 graphic0,l:print’’Mteu »/-frideo o su 3s*tampante 7”:sloui 
290 getkey aS:iF aS-”v” then 330 
300 iF aS-”s” then 380 

310 goto 290 • ’ ’^\C 

320 : 

330 rem visualizzazione del graphic 1 sul video 

335 rem inserire - Fast - per una maggiore velocita’ operativa 

340 : : graphicl , 1 : colori , 8: For i-45 to 0 step -l:ii-i*7 

350 gshape aSC i ), ii , 0 : next : color 1 , 2 : char 1 , 14 , 24 , "premi un tasto” : slou 

360 getkey aS: Fast: goto 270 

370 : .ul0 

380 rem stampa del graphic 1 su carta 

385 rem inserire - Fast - per una maggiore velocita’ operativa 
390 Fast: open 4,4:cmd4:print#4,chrS(B); ~ _ ‘ 

400 For i-45 to 0 stop -1 : print#4 , leFtSCaSC i ), 200) : next : slou : goto 270 
410 slou: end 


Còri tenori t sono sempre io 

e vi bicordo che t>ofrel*e se s 
§u»re Iò fine del fumetto nel 


che si fcovè sulle jpegme di cjues 
C.C.C. Ed or è come mlerrubt' 
gustatevi uh J>o'di HI-SC0RE5 !. 


C.C.C. BEST PLfìYERS 


32 - Commodore Computer Club 










C ANATOMIA 
DI UNA SPROTEZIONE 


Drift, avessi dovuto esaminare il dischet- 
to originale bit per bit. Dato che comun- 
que si era fatto tardi, decisi di dormirci 
su: la notte porta consiglio. 


LA SFIDA 


Descriviamo una procedura, elaborata da un 
"Campione del Sowtware" già noto ai nostri Irttorì, che 
illustra le fasi occorrenti per sproteggere il gioco 
originale . Power Drift servendosi di quella straordinaria 
5 macchina che è il C/128 

di Luca Viola 


L'indomani mi alzai deciso a tutto, e 
incominciai ad esaminare ir disco con 

vari Disk-Scanner e Disk- Monitor, senza 
venir a capo di nulla. 

Sconsolato, stavo per rassegnarmi, e 
sovrappensiero fissavo il foglietto delle 
istruzioni presenti nella confezione origi- 
nale, quando all'Improvviso una nota 
presente sul foglietto attirò la mia atten- 
zione: vi era scritto, infatti, testualmente: 


E ra un pomeriggioxupo e pioviggino- 
so quando finalmente il mio nego- 
ziante di fiducia annunciò che era arriva- 
to il tanto atteso Power Drift Originale su 
disco. _ . 

Dopo 15 minuti ero già a casa e mi 
apprestavo a far partire il programma 
dopo aver messo, come di consuetudi- 
ne, !a tacchetta di protezione sul dischet- 
to. Fatto partire il programma, e dopo 
averci giocato un pò per testarlo, mi ac- 
cingevo a fare la tradizionale copia di 
sicurezza, quando mi accorsi che il mio 
Turbo Nibbler preferito, inseparabile 
compagno di tante avventure... pirata, 
non era in grado di creare una copia 
funzionante del disco. 

Questo mi, suonava quasi come un 
insulto, e decìsi che a tutti i costi avrei 
avuto la mia copia di sicurezza di Power 


Commodore Computer Club - 33 

» *tv' f if 





Computer Shop Service 

Via Capecelatro 37 - 20148 MILANO - Tel. e Fax. 4048345 


Vi propone Iva compresa 

con 4 anni di garanzia 


Amiga 500 

L.. 

890.000 

Amiga 2000 

L.. 

1.750.000 

C.64 + accessori 

L.. 

290.000 

Stampante 80 col. Mps 1 230 

L.. 

430.000 

Stampante 80 col. colore 

L.. 

570.000 

drive esterno 3 1/2 x Amiga 

L. 

230.000 

drive esterno 5 1/4 x Amiga 

L.. 

300.000 

Monitor colore 8802 

L.. 

420.000 

H-disk 20 Mb Amiga 500 200 

L.. 

980.000 

Espansione Amiga da... 

L.. 

200.000 


inoltre personal computer Ms Dos 
ai prezzi migliori d'Italia 


PC XT 51 2K HD - 20 Mb - Monitor - Tastiera 

L.. 1.450.000 

PC AT 1024K - HD 20Mb - Monitor - Tastiera 

L.. 1.950.000 

PC 386 SX - 1024K - HD 40Mb • Monitor - Tastiera 

L.. 2. .800.000 

floppy Disk e accessori a prezzi eccezionali 

5 1/4 360k 

L.. 950 

3 1/2 ImB 

L.. 1800 


Spedizione in contrassegno in trutta Italia 


Fumagalli - Via Cairoli, 48 - LECCO - Tel. 0341-363341 




Questo gioco, una volta caricato, non 

prevede ulteriori caricamenti sia da 
cassetta che da disco. 

Ecco la soluzione che cercavo! 

Nella foga di vedere come era sta- 
to protetto il disco avevo tralascia- 
to un’altra possibile strada: quella 
di agire sulla memoria del compu- 
ter, registrandola, cioè, per intero 
dopo che il gioco fosse stato cari- 
cato, e dopo aver chiaramente in- 
dividuato l’indirizzo di partenza del 
programma. 

.. Inoltre, per quante protezioni vi 
possano essere, almeno il primo 
programma della Directory deve 
poter essere caricato normalmen- 
te con un comando del tipo Load 
8 , 1 . 

Se fossi riuscito a seguire pasr 
so-passo le azioni svolte dal com- 
puter durante il caricamento, sarei 
riuscito senz’altro a rintracciare gli 
indirizzi iniziale e finale del gioco, 
in modo da registrarlo senza pro- 
blemi su un mio disco. 

Il C/128, il mio computer, ben si 
presta alle azioni di pirateria, avendo 
due banchi separati di memoria fìam, il 
secondo dei quali completamente libero 
da interferenze. Per cui resettai in modo 
128 e il primo passo compiuto fu quello 
di dare il comando Directory (se la si 
carica in modo 64 con Load "$", 8 e 
successivo List non sarà visibile). 

Mi fu svelata la presenza di due files: 

"As" e "Gm1\ 

Il file As era quello che veniva caricato 
con Load 8,1, 
e perciò era an- 
che il responsabi- 
le del caricamen- 
to del resto del 
gioco, dato che 
eseguiva un Au- 
tostart. Allora pre- 
si il fido program- 
ma Load Address 


presente sul 1541 -Test Demo Disk , per 
verificare a quale indirizzo di memoria il 
file As venisse caricato. Il computer ri- 
spose $02A7. A questo punto, per poter- 
lo meglio esaminare, lo caricai in Bank 
1, non però a partire dal suo indirizzo 
reale (perchè ciò avrebbe sconvolto le 
delicate routine di sistema presenti in 
quell’area), ma dall’indirizzo $12A7 an- 
ziché $02 A7. Questo per riuscire meglio 
a comprendere il flusso del programma: 
se avessi incontrato, esaminandolo, del- 
le istruzioni del tipo Jmp oppure Jsr, 


avrei sostituito lo zero iniziale con un uno 
e avrei potuto interpretare correttamente 
il significato dei salti. Impartito, così, da 
monitor il comando... 

L "As", 8, 112A7 

... e caricato in memoria tale file, impartii 
il fatidico D112A7. 

Una serie di dati confusi apparì sul 
video. Provando con M 1 12A71u chiara- 
mente riconoscibile un miniprogramma 
Basic contente l’istruzione Sys 2061, 


che entrava in azione quando si fosse 
caricato il file As senza il suffisso *,8, T 
ma semplicemente col ",8", caricandolo, 
cioè, in area Basic: un modo elegante di 
ottenere l’ autostart usando entrambe le 
forme sintattiche di Load. 

Pensai, inoltre, che quando si digita il 
", 7" alla fine di un comando Load, il file 
stesso viene caricato a partire dalle stes- 
se locazioni in cui era stato salvato. 

Per realizzare l’autostart, quindi, era 
necessario che il programma As si 
estendesse almeno fino a $302 - $303 
(770 - 771) in modo da modificare 
il vettore di Warm Start e farlo pun- 
tare all’ indirizzo di partenza. 

Diedi così il comando M 1 1302, 
che rivelò che nel vettore di Warm 
Start veniva inserito il valore C4 - 
02 (in forma low - high, quindi l’in- 
dirizzo reale era $02C4 , a cui veni- 
va ceduto il controllo al termini* del 
caricamento di Ab). * * ; * 

LA PROTEZIONE 
VACILLA 

A questo punto il comando D 
112C4 aprì la prima porta: dal di- 
sassemblato, in cui venivano usate 
le routine kernal di Setfiles, Setnam 
e Load si evinceva che veniva ca- 
ricato in maniera standard un altro 
file; in seguito il controllo gli veniva 
ceduto tramite un Jmp $0334. 

La routine Setnam, infatti, punta- 
va ad un nome di lunghezza 3 po- 
sto all’indirizzo $201^ pertanto con 
M 1 12C1 riuscii a vedere il nome di tale 
file: come mi aspettavo, era Gml. 

A questo punto controllai, tramite il 
programma Load Address, l’indirizzo di 
caricamento di Gml , che, guarda caso, 
era proprio $334. Lo caricai in memoria 
(come al solito in bank 1) a partire dal- 
l’indirizzo $1334 anziché $0334 - per 
meglio esaminarlo- con... 

L "Gm1".8, 1133 

...dopo aver però 
spento e riacceso il 
computer per can- 
cellare la memoria 
ed evitare confu- 
sioni con i dati del 
file caricato prece- 
dentemente. - 
Impartendo D 
1 1 334 la prima 


UNA DOVEROSA PRECISAZIONE 

Tutte le informazioni riportate nel presente articolo sono da ritenersi puramente 
didattiche. Qualsiasi uso improprio (soprattutto se a scopo di lucro) è da ritenersi 
Illegale. L’autore del presente articolo, e la Systems Editoriale, declinano 
pertanto ogni responsabilità per un uso non corretto delle note contenute nel 
presente articolo. 


5 :rem ** go64 in ram 1 v2.0 ** 

6 :rem ** by viola luca 1 990 ** 

7 :rem ** computer c/128 ** 

8 : 

10 scnclr: bank 15 

20 print "reading data..." 

21 print "sys 4864 per andare in c/64" 

30 for t = 4864 to 4915 

40 read x$: x = dec(x$) 

50 poke t, x: ck = ck + x 
60 next • 

70 if ck <> 6559 then print "error" 

71 : 

1 00 data 20, el , a 7, fO, 05, c9, 59, fO, 01 , 60 
1 10 data a2, 00, bd, la, 13, 9d, 63, 02, e8, eO 
120 data 1b, dO, f5, 4c, 63, 02, a9, 7e, 8d, 00 
130 data ff, a9, 44, 8d, 06, d5, a9, e3, 85, 01 
140 data a9, 2f, 85, 00, a9, f7, 8d, 05, d5, 4c 
1 50 data e2, fc 
1 60 end 


34 - Commodore Computer Club 








ali» za di codici SD che avevo 

posto in memoria prima di 
± andare in modo 64. 

*4 Non trovando nulla, im- 

partii M 1F400, poi M 

V^b' .* r f-]g‘ - 1F800, finché, dando, M 

he H^H IFaOO mi accorsi che a 

. - ì ^ l<v _^ . partire da $1 FalO riparti- 

— I — rf-— va la sequenza di codici 

. - Bd: il gioco dunque termi- 

~ f r\ nava a $Fa10. 

L# A questo punto avevo tut- 

ti i dati necessari: salvai 

s 

/Fato 1 ' 

Uscito quindi dal monitor, caricai il mio || file registrato, comunque, era troppo 
programmino Go64 in modo da andare lungo e non direttamente caricabile in 
in modalità C/64 attivando la Ram 1 an- modo 64 (ben 250 blocchi!). Si rendeva 
zichè 0: così facendo al momento del ' necessario compattarlo: in giro esistono 
reset mi sarei ritrovato nel bank 1 il codi- diversi compattatori in grado di agire su 
ce di Power Drift perfettamente integro, file così grandi. 

Caricai l’originale con Load 8, 1 Uno dei miei, File Compcessor III, può 
Una volta partito, mi accorsi che effet- compattare fino a 250 blocchi (che fortu- 
tivamente il turbo si fermava per 6 volte na!) e chiede l'indirizzo di memoria a cui 
durante il caricamento, e questo avvalo- saltare dopo aver decompattato il file; a 

questa domanda risposi 
% £T* senz'altro $0834 (che era 
£ 4Sj£ l'indirizzo di partenza di 
? Power Drift ricavato poco 

prima esaminando il codi- 
— - J ce del file Gml, ricorda- 
i te?). °** 

Sottoposi il (lungo) file 
alla procedura di compat- 
tazione, e dopounà discre- 
JSzJBL ta attesa, otteni un file 
compattato della lunghez- 
| |j za di 200 blocchi (il limite 
massimo di un file caricabi- 
le in modo 64 è di 202 bloc- 

k- A questo punto tornai in 

modo 64, caricai il file così 
ottenuto, e, con compren- 
sibile trepidazione, diedi il 
run... Funzionava! (quasi quasi mi di- 
spiaque per Chris Butler, ma tant’è...). 

E così, dopo 2 ore e mezza circa di 
lavoro, ero riuscito ad ottenere la mia 
copia di sicurezza, ma non ero del tutto 
tranquillo. . : 1 

In serata, infatti, il negoziante a cui mi 
ero rivolto mi aveva garantitò l’arrivo di 
Turbo Out Run... 


istruzione presente era Jmp 
$0353. Continuai quindi con D 
11353. Apparì una tavola di 
Jsr ($36E-$37D), seguite da 
una serie di istruzioni di scrit- 
tura nei registri del Cia2 ($393- 
$3Aa). 


COMPARE ILTURBO 


Disassemblando i vari indi- 
rizzi delle Jsr mi accorsi che 
venivano modificati i vettori di 
Load: questo programma, | §£* 
quindi, era il turbo che prowe- MJJjTj 
deva a velocizzare il carica- 
mento di Power Drift. 

Continuando a disassem- HI 
blare la routine principale notai 
agli indirizzi $3B0-$3D5 che veniva ri- 
chiamata per 6 volte, con in accumulato- 
re un numero crescente da 0 a 5, una 
subroutine sita a $3F9. 

Impartendo D 1 13F9 vidi che tale su- 
broutine conteneva un salto alla routine 
di load, a cui andava dopo aver settato 
alcuni puntatori: essa doveva essere 
quindi incarnata di caricare i vari pezzi 
come, per esempio, la schermata grafica 
che appare All’Inizio. 


Seguivano agli indirizzi 
$3D7 - $3Eb i salti ad alcune 
routine kernel per chiudre la § ^ f 
comunicaziòhe col drive, e a 1,- 1 

$3Ed una Jsr a $6D5. Ili, 

Impartendo D 116D5 mi 
accorsi interpretando il disas- ~ 
semblato che tale subroutine i- 

effettuava uria decodifica dei S* . 

dati caricati in turbo. 

La routine principale, infi- 
ne, chiudeva con un salto a 
$0834 (+2100 in decimale): 
avevo trovàtò l’indirizzo di r 

partenza del programma! sfe-é 

Mi restava da scoprire do- 
ve finisse il programma. 

Per far ciò riempii la memo- 
ria del banki col codice BD 
(un altro codice comunque sarebbe an- 
dato bene) Osando il comando... 

F 10400 1FFFFBD 
Questo pérchè, una volta caricato il 
gioco, avreipotuto resettare e vedere col 
comando M dove in memoria ricomin- 
ciasse la sequenza di Bd : quello sarebbe 
stato l’indirizzo finale del codice di Power 
Drift. 


rò la mia ipotesi che il codice presente 
da $3B0 a $3D5 servisse a caricare 6 
files tramite la subroutine allocata a 
$3F9. 

Terminato il caricamento fu effettuata 
la decodifica e non appena il gioco partì, 
resettai. 

Tornato in modo 128, diedi un... 

M 1F000 



Commodore Computer Club - 35 


GW- BASIC C/64 



TUTTE LE FINESTRE 
CHE VOLETE 


Una semplice procedura in Gw-Basic offre una nuova possibilità 

per abbellire i nostri programmi 

di Luca Morettoni 


Molti di noi si saranno divertiti almeno una 
volta con il basic di Amiga ad aprire fine- 
stre grafiche; oppure hanno visto quanto 
siano più intuitivi da usare programmi che 
"dialogano" con l'utente attraverso le già 
citate finestre. 

Una volta, però, tornati al vecchio C/64, 
ci ritroviamo di fronte al solito (e tetro) 
schermo a quaranta colonne. 

Cerchiamo ora di spiegare (anche se 
sommariamente) come vengono gestite le 
finestre da Amiga; ed i problemi che ab- 
biamo. invece, con il C/64 per aprire 
una finestra. , 

’• j* •’ % *■ -> , ’ ) 

LE FINESTRE 

Le finestre vengono gestite da Amiga 
come se fossero veri e propri schermi indi- 
pendenti, senza però perdere ciò che cia- 
scuna finestra sembra "coprire" momen- 
taneamente. Il miracolo avviene trasferen- 
do. ciò che viene occultato, in una zona di 
memoria protetta da altre scritture. In se- 
guito. i .dati vengono richiamati solo quan- 
do la finestra viene chiusa nuovamente. 

Tale lavoro viene effettuato in frazioni di 

36 - Commodore Computer Club 


secondo attraverso sofisticati circuiti inte- 
grati di nuova concezione, tra cui il 
famoso Blitter. . 


PROBLEMI... 

Naturalmente il C/64 (a causa soprat- 
tutto alla sua età) non brilla certo come ve- 
locità operativa e quindi bisogna un po' 
arrangiarsi. 

Per realizzare finestre grafiche con il 
C/64 è stata subito accantonata l'idea di 
trasferire in altre zone Ram l'area grafica 
coperta dalle finestre. 

. L'accorgimento citato è stato scelto non 
tanto per la velocità (decisamente accetta- 
bile. se realizzato in linguaggio macchina) 
ma per la limitata memoria disponibile: 
provate voi a sistemare, in soli 50 KRam, il 
Gw-Basic, lo schermo grafico, un pro- 
gramma ed una manciata di finestre (ricor- 
dò che una finestra a tutto schermo occu- 
pa ben 8K!). 

Il problema viene quindi risolto trasfe- 
rendo "frammenti" di schermo su disco 
per poi essere ricaricati quando si chiude 
una finestra. La velocità operativa subisce 


ovviamente un calo, ma la quantità di fine 
stre apribili aumenta (quasi,..) all'infinito. 


...E SOLUZIONI 

Non è esatto definire “programma" la 
soluzione adottata, in quanto sono soltan- 
to due le subroutine (apertura e chiusura fi- 
nestre) che si possono aggiungere a qual- 
siasi programma realizzato. 

Ricordiamo che durante iLfunzionamon- 
to del programma deve rimanere inserito, 
nel drive, un disco su cui il programma sal- 
verà (e, successivament §7 caricherà) i 
vari riquadri. 

Per aprire una finestra basta l’istruzione 
Gosub 48000; è però necessario, prima 
di "chiamarla", passare le dimensioni ed il 
numero della finestra attra^Trso le seguen- 
ti variabili: 

NF% v‘ L > , 

numero della finestra 

’ f TT -1-4 

AAX% 

coordinata x angolo superiate sinistro 





PREMI UN TASTO PER TORNARE ALLA FIN. 2 


MINDOM l.i 

L . MO RETTON1 C.C.C 
<C> SYSTEMS ED 


MI NDOU 
MINDOM 
MINDOM 
MINDOM 


\VV\ 


S/i i sa 

m/ 


LA FINESTRA 2 E ' RECUPERATA 


MIN 
MIN 
MIN 
MIN 
MIN 
MIN 
MIN 
MIN 
MIN 
MIN 
MI N 


DOM 

DOM 

DOM 

DOM 

DOM 

DOM 

DOM 

DOM 

DOM 

DOM 

DOM 




MINDOM 

MINDOM 

MINDOM 

MINDOM 


MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 

MINDOM 


BBY% 

coordinata y angolo superiore sinistro 

ccx% 

coordinata x angolo inferiore destro 

DDY% 

coordinata y angolo inferiore destro 

Il numero della finestra deve essere indi- 
cato sempre in ordine cresente. pena ('in- 
sorgere di vari problemi in fase di chiusura 
(se una finestra era già aperta, il vecchio 
contenuto viene sostituito dal nuovo); inol- 
tre. se le coordinate non sono corrette, 
vengono controllate dal programma ed e- 
ventualmente modificate (in alcuni casi le 
finestre non vengono aperte, vedi linee 
48110-48200). 

C'V - 

Per la chiusura delle finestre, invece, la 
procedura è decisamente più semplice. 

Basta indicare il numero della finestra (va- 
riabile NF%) e saltare alla routine con Go- 
sub 48410: il programma prowederà a 
caricare la porzione di schermo al posto 
che le compete. 


ALCUNE 

PRECISAZIONI 


APRO LA FIN. 2 SENZA PERDERE LA 1 


•q. 

■ir,. k V •• 

.tu. \ ■ \ \ 


□4- CELLA 8 » 8 PIXEL <8 B VTE > 

/LOCgZIONE DI INIZIO DEL SALUATAGGIO 



FINESTRA 


LOCAZIONE FINALE- 


E' bene sottolineare, a scanso di equivo- 
ci, che prima che il C/64 apra una finestra 
sullo schermo occorre un tempo propor- 
zionale all'area della finestra stessa. Segue 
ora una breve nota sul funzionamento del- 
le due subroutine. 

La finestra, pur appartenendo allo 
schermo grafico, viene individuata in una 
griglia di 320 x 25 (come se fo$se in mo- 
do testo). 

Se ne determina quindi l'indiriz- 
zo iniziale nella pagina grafica a partire da 
$E000 (decimale 57344) e viene calcola- 
ta la sua occupazione in numero di byte 
(variabili LCI e BYO). La porzione di scher- 
mo viene quindi salvata in un file binario (i- 
struzione Bsave, riga 48300) per poi esse- 
re ricaricata con l'istruzione Bload. 

y' j ~i a *> i m ? • 

Il file contenente lo sfondo viene cancel- 
lato dopo la chiusura della finestra (riga 
48500). • 

Tutte le porzioni di schermo regi- 
strate hanno come nome il numero della fi- 
nestra. preceduto da uno spazio, e come 
suffisso la sigla .WND. 

Un ultimo suggerimento è 'quello di ab- 
bellire i bordi delle finestre; magari pone- 
dovi in alto il nome corrispondente (vedi li- 
nee 48340 - 48350). 


Commodore Computer Club -37 




PER CHI INIZIA 

Il listato di queste pagine è stato scritto usando il "dialetto" Gw-Basic che diffe- 
risce dal Basic standard del C/64 in numerose istruzioni. 

Chi non possiede nè il drive nè il dischetto Gw-Basic Emulator (che è possi- 
bile tuttavia richiedere al nostro servizio arretrati, vedi ultime pagine di questo 
fascicolo) non può quindi esaminare i simpatici "effetti" del programma 

Chi. invece, è pratico di linguaggio macchina, sarà sicuramente in grado di e- 
saminare la tecnica usata dal nostro collaboratore e "trasferirla" sul C/64, pur 
se questo è privo dell'emulatore. 

Coloro che saranno in grado di realizzare finestre usando altri linguaggi (o al- 
tri computer) possono telefonare in Redazione (02/52.49.21 1) nei pomeriggi 
di lunedì e giovedì di ogni settimana per concordarne l'eventuale pub- 
blicazione. 




100 REM UINDOU DEMO ! 47050 
110 : 47060 
100 KEYOFF : CLS1 : SCREEN1 47070 
130 FORA-0TO300STEP10 47080 
140 LINEC0 , A) -(380 , A) 47090 
150 LINE(A,0)-(A ,200) : NEXT , '■ 47100 
160 LOCATE 1,1 47110 
170 PRINT”0RA APRO LA FIN.l SEN2A PEROERE IL FONDO" 47100 
180 AAX*-05 :BBY*-05 48000 
190 CCX*'-085:DOY*-105:NF*-1 48010 
000 GOSUB48000 4B000 
010 LOCATE 1,1 48030 
000 PRI NT "PUNTI CASUALI NELLA FINESTRA N.l " 48040 
030 FORS-1TO3:FORA-05TO28S 48050 
040 PX-INT(RNDC0)*100)+05 48060 
060 PSET C A , PX ) : NEXT A , S 48070 
070 L0CATE1.1 48080 
080 PRINT"APRO LA FIN.0 SENZA PERDERE LA 1" 4B090 
090 AAX*-B5 :BBY*-55 * 48100 
300 CCX*-305:DDY*-155:NF*-0 48110 
310 GOSUB48000 48100 
300 LOCATE1 , 1 48130 
330 PRINT”NELLE FIN. SI POSSONO TRACCIARE GRAFICI” 48140 
340 F0RA-6T033STEP3 40150 
350 CIRCLEC 197 , 110) , A : NEXT 48160 
360 L0CATE1 , 1 48170 
370 PRINT”OPPUR£ SCR1UERE TESTI ... " 48180 
380 FORA-0TO10 48190 
390 LOCATEA+9, 13:PRINT”UIIND0UJ !” 48000 
400 LOCATEA+9 , 31 : PRI NT "LI INDOLI !”:NEXT 48010 
410 AAX*-15 :BBY*-15 * 48000 
400 CCX*-095:DDY*«135:NF*-3 48030 
430 GOSUB48000 48040 
440 LOCATÈ1.Ì 1 48050 
450 PRI NT "E PER FINIRE ... \ " 48060 
460 F0RA-15T0135STEPS 48070 
470 L INEC A, 15) -( 15 , 150- A) : NEXT 48080 
480 L0CATE7 , 15 : PRINT”UINDOU 1.1" 48090 
490 L0CATE9, 11 : PRINT"8Y LUCA F10RETT0NI ” 48300 
500 LOCATE 10 , 12: PRI NT” (C) SYSTEMS ED" 48310 
510 LINE(79,45)-C017,81),1,B 48300 
500 LI NE (76, 40) -(000 ,83) , 1 ,B 48330 
S30 L0CATE1 , 1 48340 
540 PR INT "PREMI UN TASTO PER TORNARE ALLA FIN.0" 48350 
550 GETAS : I FAS- " "THEN550 48360 
S60 NF*-3:GOSUB48410 48370 
570 LOCATEl.l 48380 
580 PRI NT "LA FINESTRA 0 E’ RECUPERATA! " 48390 
590 SÉTAS: IFA$- ""THEN590 ' 48400 
600 NF*-0:GOSUB48410 48410 
610 LOCATEl.l 48400 
600 PRI NT "ORA ECCO LA FINESTRA 1 COME ERA PRIMA" 48430 
630 GETAS: I FAS- ""THEN630 48440 
640 NF*~l:GOSuB48410 48450 
650 LOCATEl.l 48460 
660 PRI NT "ANCHE LO SFONDO E* STATO RECUPERATO " 48470 
670 GETAS: 1FA$-""THEN670 48480 
680 SCREEN0: END 48490 
46000 : 48500 
47000 END 48S10 

470L0. L REri. »-r 48500 

47000 REM ! 48530 
47030 REM T SUBROUT INE UINDOU UER . 1 ! 48540 
47040 REM ! PER C/64 E GUBASIC UER 0 ! 485S0 


REM ! 
REM ! 
REM ! 
REM I 
REM ! 
REM ! 
REM • 


IDEATO E REALIZZATO DA ! 
LUCA MORETTONI ! 

! 

(C) 1989 SYSTEMS ED. * 


REM SUB . UINDOU OPEN 

REM CHIAMARE CON 'G0SUB 48000' 

REM PARAMETRI RICHIESTI : 

REM NF* : NUMERO FINESTRA 
REM AAX* : COORD . X . ANG . SUP . SIN 
REM BBY* : COORD .Y .ANG .SUP .SIN 
REM CCX* : COORD. X. ANG. INF. DES 
REM DDY* : COORD . Y . ANG *. I NF . DES 
• 

REM CONTROLLO COORDINATE 

• 

IF NF*-0 THEN RETURN 
IF AAX*<0 THEN AAX*-0 
IF AAX*>319 THEN AAX*-319 
IF CCX*<AAX* THEN RETURN 
IF CCX*> 319 THEN CCX*-319 
• 

IF BBY*<0 THEN BBY*-0 
IF 8BY*> 199 THEN BBY*-199 
IF 0DY*<BBY* THEN RETURN 
IF DDY*> 199 THEN D0Y*-199 

m « | 

REM CALCOLI DIM. FINESTRA 

LCI-8HE000+C I NT C BBY*/ 8) *380) 

BYO-C C INTC00Y*/8)*1 )*300)-(LCI-&HE000) 

REM REFRESH SU DISCO 

• 

U$-STRS(NF*)«-" .UND" 

BSAUE US.LCI.BYO 

• 

REM APRE LA FINESTRA 

• 

LINE (AAX*, BBY*)-(CCX*, DDY*) , 0, BF 

L I NE ( AAX* , BBY* ) - ( CCX* , DDY*) , 1 . B 

• 

REM ESCE 
RETURN • 

. *■'4 — 

REM SUB. UINDOU) CLOSE 

REM CHIAMARE CON ’GOSUB 48410* 

REM PARAMETRI RICHIESTI : 

REM NF* : NUMERO FINESTRA 

• 

REM REFRESH DAL DISCO 

• 

US-STRS CNF* )■*•”. UND" 

BLOAD US 
KILL US 

• 

REM ESCE 

* 

RETURN 

END 


38 - Commodore Computer Club 





COME FARSI CESTINARE 
ARTICOLI E PROGRAMMI 

L 'irrefrenabile desiderio di collaborare con la nostra rivista spesso fa dimenticare 

elementari norme di sopravvivenza 

di Alessandro de Si mone 


U no dei misteri più affascinanti, per 
chi lavora in una rivista, è certamen- 
te rappresentato dalla sfrenata fantasia 
di coloro che aspirano a diventare scrit- 
tori o "giornalisti". 

La figura del giornalista, almeno se- 
condo le credenze popolari più accredi- 
tate, è stata definitivamente smondana- 
ta fin dai tempi dei film in bianco e nero 
americani degli anni '50. In queste pelli- 
cole, un giovane scrivano del Connecti- 
cut (tradizionalmente deriso da familiari 
ed amici) riesce a realizzare uno scoop 
d’eccezione intervistando (a seconda 
della fantasia dello sceneggiatore holli- 
woodiano di turno) un marziano arrivato 
fresco fresco da Marte oppure, a scelta, 
fotografando il presidente degli Stati 
Uniti mentre tenta di vendere missili a 
Fidel Castro. Le conseguenze dello 
scoop diventano, in seguito, ordinaria 
routine: lo scrivano gode dell'Invidia dei 
suoi ex-amici, si fidanza con la più carina 
del gruppo (che lo sfotteva più degli altri) 
e diventa direttore ipercontinentale del 
New York Times , con tanto di sigaro 
(cubano) imbocca. 


Il lettore umano "medio” di un qualsia- 
si periodico (e con tale termine intendia- 
mo colui che, oltre a leggere, sa anche 
scrivere) ritiene di non aver nulla da 
invidiare agli scrivani del Connecticut, 
anche se risiede, più modestamente, a 
Bernareggio e non gli capita di aver 
spesso a che fare con marziani o presi- 
denti ma, al massimo, con il parroco o 
col farmacista. 

Paradossalmente, però, il racconto 
nel cassetto, che ognuno di noi possiede 
(ci riferiamo al cassetto), non sempre 
viene fotocopiato ed inviato alla Garzanti 
o alla Mondadori ed il motivo è presto 
detto: chi ci assicura che, una volta in- 
viato, la signora Garzanti (o la signorina 
Mondadori) non cambiano subdolamen- 
te il nome sulla copertina, appropriando- 
si di fama, onori e, soprattutto, soldi? 

Per essere al riparo da brutte sorprese 
bisognerebbe andare da un notaio e de- 
positare il manoscritto prima di inviarlo. 
E se poi il notaio è parente stretto della 
signora Garzanti (o è sposato con una 
Mondadori?)... Il mondo, si sa, è cattivo; 
è buona norma prudenziale aspettare 


che diventi più buono prima di inviare il 
manoscritto. 

I PROGRAMMATORI ! 

La sottospecie più feroce degli aspi- 
ranti giornalisti è rappresentata dai letto- 
ri di riviste tecniche, in generale, ed in- 
formatiche, in particolare. 

Questi personaggi ritengono (nell’or- 
dine) che: 1 - Tutto proviene dalla Tecni- 
ca e tutto finisce in essa. 2- L’uomo che 
non vive di tecnica non è tale. 3- Il mon- 
do sarebbe migliore se privato di coloro 
che non vivono secondo le regole mona- 
stiche dei punti 1 e 2. 

I programmatori, poi, sono le creature, 
in assoluto, più pericolose del pianeta, 
anche perchè non facilmente biodegra- 
dabili. Rimangono in uno stato di peri- 
colo latente solo fino all’età di circa 14 
anni, oppure fino a che non entrano in 
possesso di un calcolatore. 

II principale segnale del raggiungi- 
mento della maturità si evidenzia con il 
malcelato disprezzo dei cuccioli (che si 
arrabattono con il Basic alla meno peg- 


Commodore Computer Club - 39 



gio) e nella esclusione violenta, dal bran- 
co, di coloro che non ricordano a memo- 
ria tutti gli indirizzi di tutte le Rom. 

Ligio alle regole prima accennate,, il 
programmatore ? aspirante - giornalista 
ritiene, giustamente, che la Redazione 
al completo di una qualsiasi rivista di 
informatica trascorra il suo tempo ad 
attendere, trepidamente, che il postino 
consegni il suo straordinario programma 
(della serie / Listati Che Hanno Cambia- 
to Il Mondo ) e non si preoccupa minima- 
mente dei trascurabili dettagli inerenti la 
comprensibilità, il funzionamento e l’uso 
del listato stesso. 

I più furbi si limitano ad inviare un 
dischetto (naturalmente privo di etichet- 
ta) che, partendo in autoboot, visulizza 
meravigliosi demo e procedure forse in- 
teressanti, ma tutte rigorosamente in lin- 
guaggio macchina, magari crittografato, 
e senza listato sorgente, nè articolo 
esplicativo. 

Come si possa, poi, stampare il listato 
è un mistero glorioso la cui soluzione 
viene affidata al basso volgo. 

IN PRATICA 

Allo scopo di non esser fraintesi, per- 
tanto, è bene esser brutali per mettere in 
pre-allàrmé gli aspiranti collaboratori. 
Ecco , quindi, che cosa accade alle vo- 
stre lettere quando pervengono in Reda- 
zione. 

1 : Non appena giunge una qualsiasi 
missiva, la busta che la contiene viene 
immediatamente stracciata, bruciata e 
t le sue ceneri sparse nel mare. Il motivo 
del selvaggio comportamento è dovuto 
unicamente al fatto che lo spazio a di- 
sposizióne per archiviare la corrispon- 
denza è piccolo (e la gente mormora) e 
tutto il "superfluo" deve essere elimina- 
to. 

2: Si esamina, subito dopo, il contenu- 
to della busta; questa doveva contenere 
un dischetto ed un unico foglio di "ac- 
compagnamento". 

Tutti i fogli in più (presi casualmente, 
tranne uno) vengono stracciati, bruciati 
e le loro ceneri gettate nel water (non 
possiamo andare al mare per ogni lette- 
ra: sarebbe antieconomico). 

3: A questo punto (e solo a questo 
puntò) si inizia a leggere la lettera. In 
questa, anzitutto, deve esserci l’intesta- 

40 - Commodore Computer Club . 


zione: la Systems Editoriale pubblica 
ben 18 (diciotto) testate e non si può 
perder tempo a leggere la lettera per 
capire a quale rivista è indirizzata. Inoltre 
deve esser presente la data di invio, e 
questo nel vostro esclusivo interesse; 
verrà data precedenza, infatti, alle lette- 
re che presentano data meno recente 
(non fate però i furbi datandole 1 825, ce 
ne accorgeremmo subito). 

Le lettere prive di data (e/o/u di inte- 
stazione) verranno poste in coda alle 
altre ed esaudite solo se c’è tempo (cioè 
mai). Nella lettera lasciate perdere i 
preamboli del tipo " siete la rivista più 
forte del mondo": lo sappiamo già. Arri- 
vate subito al sodo descrivendo somma- 
riamente, ma chiaramente, il contenuto 
del dischetto. In fondo, poi, non dimenti- 
cate il vostro nome, cognome, indirizzo 
e, soprattutto, telefono! 

4: Il dischetto. allegato deve esser do- 
tato di etichetta su cui deve comparire il 
nominativo completo dell’autore, la data 
di spedizione, il tipo di computer su cui 
"gira" ed il nome dei files presenti. La 
Directory del dischetto deve essere "pu- 
lita" (lasciate perdere i trucchetti relativi 
alla visualizzazione di ID multicolor ani- 
mati, con sottofondo musicale: non ci 
impressionano più di tanto) ; deve essere 
inoltre priva di files inutili e superflui (tipo 
"separatori" e simili frattaglie). Il dischet- 
to, soprattutto, non deve partire in auto- 
boot; vi assicuriamo che siamo in grado 
di digitare Loade Run, nè ci costa fatica 
farlo. 

Nel caso di articoli per Amiga, i di- 
schetti devono contenere: 

- l’articolo (in formato Ascii puro, sem- 
plice e spartano) privo del tutto di format- 
tazioni particolari (caratteri sottolineati, 
neretto, cambi di font e simili barbarismi: 
ci pensiamo noi ad imbruttire il tutto). 

- i vari programmi sorgenti (anch'essi 
in formato Ascii). 

Onde evitare dispiaceri, provate a 
mandare in stampa articolo e programmi 
utilizzando (da Shell ) il comando Print: 
se la stampante risponde, avete buone 
probabilità che il tutto sia valido. 

Il dischetto, sempre nel caso di Amiga, 
non deve contenere le varie subdirectó- 
ry L, C e simili. Il dischetto deve essere 
stato originariamente prodotto con il co- 
mando Format nella sua veste più di- 
screta. Come fare, però (si chiderà l’a- 


stuto aspirante collaboratore) se il pro- 
gramma inviato richiede la presenza di 
tali subdirectory? E qui casca l’asino! 
Non dobbiamo dimenticare che la nostra 
rivista si rivolge soprattutto ai principianti 
ed a coloro che, di norma, non intendono 
ammalarsi di informatite. Dobbiamo im- 
maginare che il nostro lettore "medio", 
dopo aver letto l’articolo, accende il com- 
puter e provvede a digitare il listato, re- 
gistrandolo su di un dischetto che può 
essere qualunque e, come tale, anche 
privo dei files vitali eventualmente ne- 
cessari per il buon funzionamento della 
procedura. 

L'aspirante collaboratore, pertanto, 
deve tenere a mente tale eventualità 
facendo comparire nel listato, ad esem- 
pio, un messaggio del tipo Print "Nel 
dischetto presente in DFO: deve esser 
presente la subdirectory L: in caso con- 
trario premi Ctrl C e provvedi ad esegui- 
re la copia di L:". Naturalmente tali avr 
vertimenti devono esser presenti anche 
nell'articolo. 

I dischetti che, ad una sommaria vi- 
sualizzazione della directory, dovessero 
contenere altre directory, verranno infet- 
tati con la varicella e rispediti al mittente, 
senza francobollo. 


PIANGE IL TELEFONO 

Naturalmente la stessa procedura 
può (anzi, deve ) essere seguita da co- 
loro che intendano servirsi della nostra 
BBS. Preparate i vari files che costitui- 
scono il vostro lavoro, dotateli di nomi 
non più lunghi di otto caratteri (per il 
nome) e tre (per l'eventuale suffisso). 

Quest’ultimo deve essere^ 

.Asc (Articoli) <> 0; 

.Bas (Programmi Basic).-, 

.Ass (Disassemblati) 

.C (Sorgenti C). ì® 

.Let (Lettera di accompagnamento) 


Non sapete ancora il numero della 
nostra BBS? Eccovi accontentati: 

02/52.49.211 - 


da 300 a 2400 baud; parità none; n. 
bits 8; un bit di stop. In altre.£arole: 2400, 


N, 8, 1. 


m 


La nostra BBS si adatta automat- 
icamente alla velocità del vostro modem 
ed opera 24 ore su 24, sette giorni alla 
settimana, 12 mesi all’anno. Cioè sem- 
pre. 



f ■ -Commodore 

COMPUTER 

CLUB 


ina 











w&m r ' 

2 « 






Sul*- 

>1 


ì'^ì.1. 

. 

T I 

* . 

m J. I 


L 13. * 


■ 

AMIGA 


1 

■ ! 


I 

I 

© 

•*"; 



mm 













688 SUB ATTACK 



L a simulazione di battaglie da bordo di 
un sottomarino conta un buon nume- 
ro di titoli per Amiga (Hunt for Red Hoc- 
tober, Sub Battle Simulator , Submarine 
Hunter, Submarine Simulator...), ma 
quando scende in campo la leggendaria 
Electronic Arts come minimo bisogna 
fare attenzione. Questo programma as- 
somiglia tantissimo a Sub Battle Simula- 
tor perchè all’inizio si sceglie il quadro di 
controllo cui accedere indicando, con il 
mouse, un personaggio tra quelli raffigu- 
rati in un interno di sottomarino. 

Per prima cosa bisogna richiedere, via 
radio, il tipo di missione (ve ne sono 
almeno sei, differenziati a loro volta in 
vari sottolivelli), poi si può iniziare a ma- 
novrare periscopi, radio, radar, sonar, 
motori, sistemi di puntamento, siluri, 
analizzare mappe e sagome di navi me- 
morizzate nel computer di bordo. 

T utte le operazioni sono controllate via 
mouse clickando sui gadget visualizzati. 
A differenza di Sub Battle Simulator, qui 
troviamo un numero enorme di controlli 
e parecchie persone alle nostre dipen- 
denze, che tra l'altro compaiono effetti- 
vamente come visi digitalizzati fedel- 
mente sul video. Le missioni sono talvol- 
ta piuttosto complesse ed impegnative, 


ma come al solito è previsto un sistema 
di compressione del tempo per comple- 
tare i lunghi inseguimenti in un tempo 
ragionevolmente breve. L'intero pro- 
gramma è comunque molto realistico ed 
appassionante, sebbene sia necessario 
studiare un ponderosomanuale d’uso 
per imparare ad usarlo a fondo. 


Su di un sottomarino a 
caccia di navi nemiche 
in uno scenario 
decisamente realistico 

Computer: Amiga inespanso 
Gestione: Mouse 
Tipo: Simulazione sottomarino 
Softhouse: Electronic Arts 


LA TECNICA 

Partendo dal peggio, gli effetti sonori 
avrebbero potuti essere migliori e di cer- 
to sono l'unico punto discutibile dell'(al- 
trimenti) ottimo programma. I numero- 
sissimi schermi comprendono le indica- 
zioni di numerosi tipi di navi differenti, 
con sagome ed informazioni rigorosa- 
mente vere. I radar sono realistici, anche 
se la fase di costruzione delle immagini 
viste dal periscopio è un pochino lenta, 
così come le interfasi di passaggio da un 
pannello di controllo all'altro, che impon- 
gono la lettura di dati dal disco. 


IL VOTO 

Un altro piccolo capolavoro dalla ECA, 
con solo qualche difettuccio. 8-. 



42 - Commodore Computer Club 















Ancora una 
simulazione di arti 
marziali, ma molto ben 
realizzato 

Computer: Amiga inespanso 
Gestione: Joystick 
Tipo: Arti marziali 
Softhouse: Electronic Arts 


U n gioco di arti marziali (come Inter- 
national Karaté, Bruce Lee , The 
Way of Exploding Fist...) non poteva che 
essere scritto da un orientale ( Michael 
Kosaka ) ed è certamente uno dei più 
evoluti nel suo genere, con ben quattro 
differenti specialità: Karaté, Kendo, Boe 
Nunchaku. 

Per chi non fosse troppo... acculturato, 
precisiamo che il Karaté si basa su colpi 
di mano e di piedi nudi, il Kendo su di una 
lotta con una spada (di legno), 
il Bo su scontri a bastonate, e che il 
Nunchaku è uno strumento, originaria- 
mente usato dagli agricoltori giapponesi, 
trasformato in arma, consistente in due 
bastoncini legati da una corda (resi fa- 
mosi da Bruce Lee). 

Inoltre è prevista la possibilità di lottare 
in due avversari "umani" uno contro l’al- 
tro. 

Inizialmente si sceglie tra le cinque 
pagode che contengono gli esperti delle 


quattro specialità dette prima (una è per 
scegliere la lotta a due), poi si indica, via 
joystick, un livello tra tre di abilità dell'av- 
versario ed infine si può iniziare a lottare 
(Kumite) oppure scegliere la pratica 
(Jiyu Renshu). 

Il controllo avviene come sempre tra- 
mite joystick: secondo lo spostamento 
della manopola e la pressione del tasto 
di fuoco si possono effettuare una note- 


vole quantità di movimenti e colpi. Lo 
scopo è di diventare maestri in tutte le 
specialità, seguendo anche le osserva- 
zioni ed i commenti dati alla fine di ogni 
fase. 


LA TECNICA 

Vi è una varietà enorme di movimenti, 
moltiplicati per le quattro specialità, che 
richiedono molto tempo e molti smanet- 
tamenti del joystick per essere ben ap- 
presi: posizioni di guardia, piroette, salti, 
calci e mosse specifiche per ogni specia- 
lità marziale richiedono una certa quan- 
tità di tempo anche per essere solo esa- 
minate! 

Le sequenze di animazione sono co- 
munque sempre molto fluide e realisti- 
che, con efferti sonori consistenti in cre- 
dibili rumori di contatto osso-osso, osso- 
arma o arma-arma, ed una gradevole 
musichetta orientale di sottofondo. 

Per dare un’idea dello sfoggio di tec- 
nica, durante il gioco sullo sfondo volano 
uccellini e si muovono foglie... 

Un chiaro neo è invece l'eccessiva 
lentezza degli spostamenti ai livelli infe- 
riori, dove anche la scarsa combattività 
dell’avversario rendono il gioco statico. 



Commodore Computer Club - 43 









SPACE HARRIER II 



S pace Harrier è uno di quei giochi 
classici che non hanno bisogno di 
presentazioni, anzi sono un termine di 
riferimento per tutti gli altri videogames 
che li copiano più o meno sfacciatamen- 
te. In pratica si controlla un uomo volante 
(supposto essere in piedi su di una spe- 
cie di hovercraft) visto di spalle, armato 
di bazooka, che deve affrontare ad altis- 
sima velocità un mondo in prospettiva 
tridimensionale, velocissimo e pieno di 
insidie. 

Ovviamente vi sono parecchi livelli da 
affrontare. 

Inizialmente si può scegliere se avere 
il fuoco rapido (continuato) oppure no, se 
usare il joystick oppure il mouse per 
controllare i movimenti, la direzione da 
cui osservare il movimento, e seleziona- 
re effetti sonori o musica di accompa- 
gnamento. 

Si può scegliere inizialmente, col mou- 
se od il joystick, tra tredici differenti tipi 
di scenografia, tutti caratterizzati da uno 
sfondo scorrevole ad alta velocità. 


LA TECNICA 

Il succo di questo gioco sta nell’estre- 
ma velocità di scorrimento dello sfondo 
e nella nitidezza dei nemici che si mate- 


rializzano dallo sfondo;questo, dal canto 
suo, è piuttosto uniforme e banalotto, 
senza alcuna raffinatezza tecnica degna 
di nota. 

La musica è piuttosto ripetitiva e, cer- 
tamente, si potrebbe fare di meglio dal 
punto di vista dell’interfaccia col joystick 
ed il mouse. 


Se avete nervi saldi, 
provate a pilotare con 
precisione il veicolo a 
vostra disposizione 

Computer: Amiga inespanso 
Gestione: Mouse 
Tipo: Arcade Game 
Softhouse: Sega 


IL VOTO 

Un gioco concettualmente banale, ma 
realizzato piuttosto bene. 7-. 




44 - Commodore Computer Club 








Una nuova simulazione 
del gioco del tennis in 
cui il realismo tocca 
livelli mai visti prima 

Computer: Amiga ìnespanso 
Gestione: Joystick 
Tipo: Simulazione sportiva 
Softhouse: Loricieis 


I l gioco del tennis conta ormai parec- 
chie versioni per Amiga, ma questa è 
sicuramente una delle più rifinite e tecni- 
camente interessanti. 

Si inizia scegliendo col joystick tra gio- 
co singolo contro il computer, gioco a 
due persone, dimostrativo ed opzioni 
globali. Queste ultime consentono una 
serie notevole di personalizzazioni, co- 
me ad esempio la possibilità di giocare 
al meglio in uno, tre o cinque set. 

Iniziando si può scegliere tra un gioca- 
tore "esistente" od uno creabile a nostro 
piacimento, in base ad abilità (percen- 
tuale di successi) nel portare i colpi: ser- 
vizio, dritto, rovescio, volee, smash ec- 
cetera. 

Ovviamente anche noi otterremo un 
posto in graduatoria in base ai risultati 
ottenuti con gli altri giocatori (lo scopo 
del gioco è diventare i migliori). Inoltre, 
alla fine di ogni partita, si ottengono delle 
complete statistiche sui colpi portati. 


Dopo avere calcolato il grado di abilità, 
si può indicare se giocare in: esibizione 
semplice o doppia, allenamento, torneo, 
coppa Davis o campionato. Ovviamente 
il livello del gioco cresce proporzional- 
mente. Come ultima scelta, prima di gio- 
care, si può richiedere un campo in terra 
battuta, sintetico, in cemento o d’erba 
(che influiscono sui rimbalzi della palli- 
na). 


Il gioco viene condotto muovendo il 
joystick per portare il giocatore al punto 
giusto per colpire la palla. Premendo il 
pulsante di fuoco inizia il movimento e 
rilasciandolo, eseguendo uno sposta- 
mento col joystick, si colpisce la sfera 
con un particolare effetto. Effettivamente 
occorre parecchia pratica prima di colpi- 
re con una certa costanza la pallina, poi 
si può iniziare a ricercare gli effetti da 
assegnare. 

LA TECNICA 

La scena di gioco è suddivisa in due 
campi (particolare utile quando giocano 
due persone), dal momento che ambe- 
due possono guardare la scena di gioco 
come se fossero posizionati alle spalle 
del giocatore mosso. Ciò è un grande 
vantaggio rispetto ad altri giochi dello 
stesso genere, e se si considera la velo- 
cità e la fluidità del movimento, la nitidez- 
za delle sagome e l’entusiasmante qua- 
lità delle sintesi sonore, il tutto è vera- 
mente interessante. 

IL VOTO 

Grande varietà di opzioni; tecnica e 
realismo ineccepibili. 9. 



Commodore Computer Club - 45 










IT CAME FROM THE DESERT 




sTrlclV " 0nÉ0! ” 


you've lost thot assay box youTI be on thè 


L ’ennesima avventura con animazioni 
grafiche di altissima qualità dalla Ci- 
nemaware, sulla scia del film americano 
It Carne From The Outer Space, degno 
erede di Defender of The Crown , Sin- 
bad, Rocket Ranger, Capone... 


IL GIOCO 

Un meteorite è precipitato nel deserto, 
proprio vicino al nostro amato villaggio, 
Lizard Breath, provocando una mutazio- 
ne nelle formiche. Vestiamo i panni di un 
geologo che deve cercare un rimedio 
entro quindici giorni (tenendo conto che 
un minuto di gioco è un secondo di tem- 
po, e che bisogna anche dormire), data 
entro la quale le formicone decideranno 
certamente di banchettare nel villaggio. 

Fondamentalmente, per riuscire a 
convincere il sindaco a darvi retta, biso- 
gna raccogliere quattro prove fonda- 
mentali (come e quali a voi scoprirlo), al 
che egli acconsentirà alla fine di distri- 
buire operai delle miniere, contadini, po- 
lizia ed esercito per uno scontro finale 
risolutivo con i formiconi (nome scientifi- 
co Pugonomyrex Rugosus). 

Come è consuetudine dei prodotti Ci- 
nemaware (da notare che il programma 


è stato scritto dalla Mirrorsoft), il gioco è 
effettivamente un misto di avventura pi- 
lotata da frasi scelte da menu (con il 
joystick) e fasi arcade vere e proprie. 
Queste consistono in: fughe da ospedali, 
risse all’arma bianca, disinfestazione da 
aereoplano, incidenti stradali, lotta coi 
formiconi a suon di pistola ed altro. 

Alcune di queste fasi sono veramente 
notevoli: la fuga dall’ospedale, ad esem- 


pio, potrebbe quasi essere un gioco a se 
stante (in stile vagamente Gauntlet) con 
una grafica dall’alto piccolissima ma det- 
tagliatissima (quando ci si nasconde a 
letto le coperte salgono fin sulla faccia) 
ed il trucco sta nel camminare dietro le 
infermiere per non farsi vedere. 

L'avventura, invece, corre per binari 
tutti da scoprire. Ad esempio il punto 
debole dei formiconi, cioè dove mirare 
con la pistola durante la fase arcade, 
viene rivelato dallo scienziato del labo- 
ratorio di Lizard Breath. Analogamente, 
fare indagare su strane pietre radioattive 
dal nostro assistente potrebbe fare bru- 
ciare la nostra casa (se non si è bravi con 


Tanti bei formiconi 
giganti, da uccidere al 
più presto, sono i nostri 
pericolosi nemici 

Computer: Amiga inespanso 
Gestione: Joystick 
Tipo: Avventura grafica 
Softhouse: Cinemaware 


46 - Commodore Computer Club 







l'estintore), mentre dare troppa corda ad 
una bella fanciulla che ha avuto un inci- 
dente e chiede soccorso potrebbe cau- 
sare più grane di quanto si potrebbe 
credere. 

La città comprende vari luoghi, tutti 
dotati della classica scenografia a qua- 
dretto della Cinemaware: pub, radio pri- 
vata, miniere, laboratori, tribunali, reda- 
zione, strade, aereoporto, fattorie, cine- 
ma (proiettano Rocket Ranger, guarda 
caso), studio di una chiromante (che ri- 
corderà la zingara di Sinbad a più di un 
lettore), Ospedale e via girovagando. 
Per così tanti luoghi esistono ovviamen- 


te un buon numero di personaggi dalle 
personalità più o meno spiccate, da ca- 
pire per scoprire come farli collaborare 
con noi. 

LA TECNICA 

Il gioco è distribuito su tre dischetti, dei 
quali il primo contiene l'introduzione tipo 
"film** ed il programma vero e proprio, 
mentre gli altri due dischi comprendono 
tutte le scene e le sequenze di animazio- 
ne. In pratica è quindi indispensabile, per 
chi non possiede un disco rigido, dispor- 
re di almeno due drive, dove dopo l'av- 


viamento lasceremo sempre inseriti il 
secondo ed il terzo disco. I tempi di 
caricamento non sono comunque mai 
lunghissimi. 

La grafica è nella migliore tradizione 
Cinemaware: il sapore anni '50 pervade 
tutte le scene di gioco e si nota una cura 
maniacale in particolari e dettagli che si 
scoprono sempre nuovi anche dopo pa- 
recchie ore di gioco: il trucco e le accon- 
ciature delle donne, le automobili, la se- 
gnaletica stradale, l’architettura dei pa- 
lazzi e tutto il resto. 

Gli effetti sonori consistono in una an- 
gosciante musica di accompagnamento, 
con alcune variazioni, e numerosi suoni 
campionati per le varie scene arcade: 
spari, urla, spiaccicamento di mostri, vo- 
lo d’aeroplano e via digitalizzando. 

L’interfaccia tramite joystick (per sce- 
gliere le frasi e le azioni dal menu scor- 
revole che compare dal basso) è rapida 
ed efficace. 

Da notare che quando compare il me- 
nu, una scelta considerata "più ovvia" è 
già selezionata di default e basta sem- 
plicemente premere il pulsante di fuoco 
per procedere. 

IL VOTO 

Un classico. Considerata la trama ap- 
passionante, la varietà di possibili solu- 
zioni e trame, la qualità tecnica e la 
buona interattività diamo di cuore un bel 
9. 



Say nothink...! know vie you'vc conte. You are troubled by thè 
coMing of thè Meteor. 


Commodore Computer Club - 47 



Finalmente un gioco 
didattico ed educativo 
insieme: come 
"funziona" una città 

Computer: Amiga (1 Megabyte) 
Gestione: Mouse 
Tipo: Strategico 
Softhouse: Infogrames 


U n gioco stile "Populous", dove però 
si controlla la nascita e l’evoluzione 
di una città con criteri statistici e scienti- 
fici. 


IL GIOCO 

La simulazione della vita di una città si 
svolge su di una quantità di fattori inter- 
dipendenti: densità di popolazione, in- 
quinamento, mezzi di trasporto, disponi- 
bilità di servizi e di posti di lavoro, prote- 
zione della Polizia contro i malviventi, 
fornitura di energia elettrica, percentuale 
di parchi e di zone pesantemente indu- 
strializzate, protezione civile da parte dei 
vigili del fuoco, capacità di scambiare 
merci per mezzo di aerei, porti, eccetera, 
eccetera. 


Partendo dal nulla, solo con una som- 
ma in dollari proporzionale al livello di 
gioco scelto, il giocatore deve creare 
centri residenziali, commerciali ed indu- 
striali, scegliere la collocazione delle 
centrali elettriche e delle relative linee di 
collegamento tra i vari centri, collocare il 
verde pubblico e le centrali di polizia per 
combattere la criminalità e, insomma, 


tenere in equilibrio centinaia di fattori 
interdipendendti tra loro. 

Ad esempio, inizialmente bisogna for- 
nire alla città più case (che non uffici o 
industrie) per favorire l'insediamento di 
cittadini, ma col proseguire del tempo 
tale equilibrio dovrà essere invertito. 

Si tenga presente, però, che troppe 
industrie favoriscono l'inquinamento, e 
quando invece si hanno troppi cittadini 
ed un’inadeguata rete di trasporto (ferro- 
vie o strade) si forma troppo traffico (vi- 
sibile) e il commercio scarseggia. 

Inoltre pochi cittadini forniscono soldi 
pagando le tasse: se si alza la percen- 
tuale di tassazione (da menu), si guada- 
gna di più, ma i cittadini tenderanno ad 
emigrare ed il commercio e l’industria ne 
risentiranno a medio termine. 

Molti cittadini e zone con scarso verde 
facilitano la criminalità, che scoraggia gli 
insediamenti e costringe ad impiantare 
dipartimenti di Polizia dappertutto, che 
poi sottraggono buone fette degli introiti 
delle tasse. 

Si potrebbe proseguire nella descri- 
zione degli innumerevoli fattori di equili- 
brio di Sim City, un programma che ha 
riscosso tanto successo da essere stato 
prodotto praticamente per qualunque 
modello di computer (perfino per i seriosi 



48 - Commodore Computer Club 



















MS/DOS, PS/2 e Macintosh). Non per 
niente il programma è fornito con un 
ponderoso manualetto di una cinquantia 
di pagine, ricco anche di consigli e di una 
bibliografia per erudirsi sul come funzio- 
na una città "ideale”. 

Sono anche previste alcune scene 
realistiche ed inventate (anche con mo- 
stri tipo King Kong che spaccano tutto) 
per potere offrire nuove situazioni di gio- 
co a chi è già diventato esperto. 


LA TECNICA 

La versione Amiga sfrutta bene l’enor- 
me facilità di interfacciamento prevista 
da Intuition con una quantità di gadget, 
finestre e menu. 

Il grado di dettagli è notevole: trenini, 
automobili, fontane, elicotteri, tifosi nello 
stadio, aeroplani, navi, ponti sono beno 
mossi nelle loro piccole dimensioni. I 
gadget e le schermate con i grafici sono 
realizzate con cura e dovizia di partico- 
lari. 


L’interfacciamento via mouse è eccel- 
lente, alternativamente si possono usare 
combinazioni di tasti. 

Gli effetti sonori sono pochi ma davve- 
ro buoni. 


Il voto 

Un gioco originale, scientifico, educa- 
tivo, vario, con incentivi a volontà, adatto 
a chiunque. 9. 



Commodore Computer Club - 49 







U na bella avventura alla Indiana Jo- 
nes e Zak McKracken, estremamen- 
te divertente e con numerosissimi sim- 
patici problemi da risolvere, fanno di 
questo programma un best seller inter- 
nazionale. 


MANIAC MANSION 


IL GIOCO 

Una meteora si è schiantata nei pressi 
della casa dello scienziato Weird Ed. 
L’oggetto celeste è semplicemente 
un’entità aliena, che fa impazzire il dot- 
tore e gli mette in testa strane idee su 
come diventare padrone del mondo. Egli 
.costruisce, infatti, una macchina per im- 
padronirsi di posti importanti, che funzio- 
na rubando l’intelligenza alle persone. 
Prima di avviarsi alla prova di lavoro, egli 
però desidera sperimentarla; quindi rapi- 
sce Cindy, studentessa dell’attiguo col- 
lege. Come tutte le eroine da videogioco, 
Cindy è fidanzata, con Dave, che lotta 
come un pazzo (lo controlliamo noi) per 
liberarla. In virtù della massima "chi trova 



to Unlock Turo on 


In aiuto della nostra 


up New kid Turn off 
is Use Fix 


fidanzata, con qualche 


pericolo da evitare, ma 


con humor 



un amico trova un tesoro", inizialmente 
si possono scegliere due amici tra gli 
studenti del College per farsi aiutare: 
Syd (cantante NewWave), Wendy (aspi- 
rante giornalista), Bernard (cervellone 
del corso di Fisica), Jeff{ atleta), Michael 
(fotografo) e Razor (cantante punk). 

Il bello del gioco è che la trama e le 
istruzioni allegate non dicono ovviamen- 
te granché della soluzione. Anzi, solo chi 
possiede il pacchetto originale può leg- 


gere su di un foglio specialissimo (non 
fotocopiabile in alcun modo, ed assai 
dispendioso da ricopiare) alcuni sugge- 
rimenti fondamentali per sapere come si 
procede nel gioco in taluni punti critici, 
altrimenti del tutto incomprensibili. 

Un deciso senso di "humor" riveste 
moltissime delle situazioni di gioco che 
si incontrano, con particolari e colpi di 
scena veramente da barzelletta. Ovvia- 
mente ogni personaggio ha una propria 


personalità e può, almeno teoricamente, 
completare l'avventura. 

Ciò contribuisce a moltiplicare il già 
alto numero di possibili modi di soluzio- 
ne, che contribuiscono a mantenere l’in- 
teresse anche quando si è risolto il gio- 
co. 

LA TECNICA 

L’interfaccia col numero limitato di fra- 
si fatte selezionabili col mouse, col quale 
si possono anche indicare direttamente 
gli oggetti interessati alle azioni sullo 
schermo, è certamente considerato il mi- 
gliore attualmente in circolazione, so- 
prattuto dal punto di vista di chi non 
conosce perfettamente l’inglese. Infatti è 
sufficiente imparare il significato dei ver- 
bi sullo schermo; poi si può giocare, a 
patto di avere il foglio infotocopiabile. 

La grafica è in animazione decisamen- 
te buona, gli sprites sono belli alti, comi- 
camente sproporzionati e seguono do- 
cilmente i comandi impartiti dal mouse. 
Gli effetti sonori sono semplici ma diver- 
tenti. 

IL VOTO 

Un classico per Amiga, nel suo genere 
e non, consigliato a tutti. 9. 


50 - Commodore Computer Club 



R aramente si può definire perfetta la 
conversione di un top hit, questo 
programma per Amiga, però, si avvicina 
molto all’ideale, considerate le ovvie dif- 
ferenze tecnologiche tra un computer 
dedicato e d un personal computer. 

IL GIOCO 

Con il celebre Silkworm dell’anno 
scorso, Ninja Warriors ha due buoni 
punti di contatto: è stato convertito da 
due eccellenti programmatori, (Ronald 
Pieket Weeserik e John Crudy), che 
hanno il vizietto di realizzare conversioni 
migliori dell’originale sfruttando even- 
tuali caratteristiche speciali del compu- 
ter ospite. In questo caso era comunque 
davvero difficile restare perfettamente 
fedeli, in quanto la versione di sala gio- 
chi è famosa per il triplo monitor e triste- 
mente nota per la pochezza della trama. 

Ninja Warriors per Amiga risulta quin- 
di un gioco che gli inglesi definiscono 
7ivo Player Horizontal Beat Em Up , ov- 
vero "spaccatutto a due giocatori con 
scorrimento orizzontale”. 

Sono previsti sei livelli di gioco, con il 
più largo ampio circa diciassette volte lo 
schermo. Si incontrano strade, aereo- 


porti, interni di case e tanto altro ancora. 
Inizialmente si è armati solo di un limitato 
numero di Shuriken (stelle appuntite) e 
si procede incontrando una varietà di 
nemici: esseri con più gambe e braccia 
che denti, esseri con più denti che peli, 
esseri con più peli di Lucio Dalla eccete- 
ra. Tutti comunque con la caratteristica 
di essere ottimi pestatori, guarda caso. 


Abilità e destrezza 
sono tassative in 
questa conversione da 
un noto coin up 

Computer: Amiga inespanso 
Gestione: Joystick 
Tipo: Arcade combattimento 
Softhouse: Virgin 


LA TECNICA 

La grafica è fedele all’originale, com- 
primendola per farla brillare senza pro- 
blemi anche su un solo monitor, anzi 
qualcuno sostiene che sia stata trasferi- 
ta direttamente con un Download dalle 
ROM del videogioco originale. Si consi- 
deri che i lunghissimi sfondi non si ripe- 
tono mai e non sono generati algoritmi- 
camente. 

Comunque, nonostante l’area di gioco 
sia una striscia piuttosto stretta rispetto 
all’originale, i ninja sono pur sempre alti 
circa sei sprites ed animati splendida- 
mente; suggeriamo di ammirare in parti- 
colare l’ondeggiamento dei capelli du- 
rante i salti e l’animazione del carrarma- 
to, consistente in ben diciassette foto- 
grammi. Gli effetti sonori sono all’altezza 



Commodore Computer Club - 57 











S i tratta di un programma arcade e 
strategico stile Cinemaware, che ha 
richiesto circa quindici mesi per essere 
completato ed è distribuito in tre lingue: 
inglese, francese e tedesco. 

IL GIOCO 

Destinati ad ereditare il trono, quali 
principi ereditari, abbiamo avuto la sfor- 
tuna di imparentarci con uno zio che ha 
assassinato gli altri membri della fami- 
glia ed ha distrutto il nostro castello. 

Non contento, lo zietto ha radunato un 
esercito diabolico e si accinge ad attac- 
care i nostri possedimenti. 

Bisogna dunque abbandonare le mura 
distrutte del castello ed ispezionare i 
paesi circostanti. 

Un rettangolo nella porzione superiore 
destra dello schermo presenta la visione 
dall’alto di paesi e luoghi, mentre quando 
si incontra qualche essere vivente com- 
pare un menu che consente di scegliere 
tra alcune operazioni banali: dare, parla- 
re, acquistare eccetera. 

La grafica è sempre molto curata: per- 
sonaggi che camminano, mappe deco- 
rate "a mano" in perfetto stile medievale, 
pittoreschi personaggi animati, eccete- 
ra. 


Come nei giochi della Cinemaware, 
durante il gioco si può accedere a varie 
fasi più puramente "arcade", tipo un tiro 
con l’arco in stile simile a quello dei 
giochi sportivi (a parte i vestiti e le arma- 
ture del tiratore, invece delle tutine in 
fibra sintetica), il braccio di ferro, la 
scherma, il gioco dei dadi (puramente 
casuale) ed altro ancora. Superando le 
varie fasi arcade si acquista prestigio e 


Un misto di Arcade e 
Adventure, per nulla 
all’altezza di prodotti 
già noti da tempo 

Computer: Amiga inesp. C/64 
Gestione: Joystick, Mouse 
Tipo: Arcade/strategico 
Softhouse: Ubi Soft 


riesce più facile radunare l’esercito da 
schierare contro lo zio cattivo. Altro me- 
todo per assemblare un buon esercito 
consiste nello svolgere (ruffianamente) 
missioni per potenti. 

LA TECNICA 

Si tratta del classico prodotto basato 
molto più sull’impatto iniziale nei con- 
fronti dell’acquirente che sui reali conte- 
nuti ludici. 

Ciò significa che la grafica di scena e 
di movimento e gli effetti sonori sono 
curati con grande perizia, ma sono del 
tutto carenti incentivi, innovazioni ed ori- 
ginalità. 

IL VOTO 

Solo per i patiti del genere Cinemawa- 
re "impoverito". 6+. 



52 - Commodore Computer Club 




MYSTERY OF THE MUMMY 



E cco un'avventura nei panni di un in- 
vestigatore agli inizi del secolo, per 
gli appassionati più esigenti. 

IL GIOCO 

Vestiamo i panni di un avvocato di 
Amburgo che riceve la richiesta di aiuto 
da parte di un onesto cittadino, Rudolf 
Rabensberg , che ha perso una mummia 
appartenente al padre. Sapendo che ad 
un’asta è stata messa in palio una mum- 
mia vagamente familiare, Rudolf ci chie- 
de di indagare per scoprire se si tratta 
dell’eredità paterna rubata in passato. 
La scena del gioco si suddivide tra Am- 
burgo e Monaco, dove si svolgono le 
indagini, ambientate nell’anno 1912. 

Inizialmente il gioco consiste soprat- 
tutto nell’indagine in vari posti misteriosi 
e ricchi di indizi sparsi per la città. Si 
consideri che esistono più di un centina- 
io di personaggi, molti dei quali sono 
totalmente sconosciuti e non citati nelle 
istruzioni, per cui bisogna arrangiarsi a 
chiedere ad uno e all’altro per procede- 
re. 

Oltre alle scene di riflessione su più 
elementi ed indizi contemporaneamen- 
te, sono previste fasi di azione pura, 
come ad esempio l’improvvisarsi farma- 


cisti in un laboratorio chimico, o subac- 
quei per recuperare reperti in fondo ad 
un lago. 

LA TECNICA 

Lo schermo è suddiviso in varie sezio- 
ni e col mouse, clickando opportuna- 
mente su particolari delle schermate 
grafiche, si aprono varie finestre che 


Avete mai avuto a che 
fare con una mummia ? 
Non abbiate paura, è 
piuttosto morta... 

Computer: Amiga inespanso 
Gestione: Mouse, tastiera 
Tipo: Avventura 
Softhouse: Rainbow Arts 


consentono di esaminare particolari ed 
indizi. 

Da tenere d'occhio anche i quattro 
indicatori grafici di fame, stanchezza, 
soldi e sete. 

L'interfacciamento con l’utente avvie- 
ne tramite mouse e gadget sullo scher- 
mo, oppure digitando su tastiera even- 
tuali nomi o stringhe alfabetiche. 

IL VOTO 

% 

Una discreta avventura, con interfac- 
cia utente originale (anche se ridotta) 
molti incentivi ma poca varietà di situa- 
zioni. 6 e mezzo. 



Commodore Computer Club - 53 






WEIRD DREAMS 


Un’operazione 
chirurgica mal riuscita 
ci proietta in un mondo 
di incubi 

Computer: Amiga inespanso 
Gestione: Joystick 
Tipo: arcade multifase 
Softhouse: Rainbird 


Luna Park, almeno come sfondo, dopo 
essere passati per una rassicurante (si 
fa per dire) "camera degli specchi". 


LA TECNICA 

La grafica di sfondo è sicuramente ad 
ottimi livelli, mentre quella di animazione 
risente ancora di una tecnica che non 
sfrutta al massimo le caratteristiche Ami- 
ga. In effetti il gioco è sicuramente un pò 
(troppo) lento, anche tralasciando le fasi 
di caricamento dai (due) dischi. 

Gli effetti sonori e le musiche sono 
buone. 


IL VOTO 

Un’idea originale, variegata ma tecni- 
camente non perfetta. 7 meno. 



I concetti alla base della trama di Weird 
Dreams sono da ricercare nelle teorie 
del subconscio e deH’immaginazione 
umana. 

Mentre siamo ricoverati in sala opera- 
toria per una semplice operazione (ton- 
sille?) andiamo in coma. 

Ovviamente ciò non inibisce tutte le 
funzioni vitali e, dalla visione dei camici 
bianchi piegati su di noi, passiamo allo 
sfrenato mondo dei sogni, anzi degli in- 
cubi. 


IL GIOCO 

Il gioco vero e proprio consta di più fasi 
differenti, col nostro protagonista rappre- 
sentato da una figura stralunata, peren- 
nemente in pigiama. 

Nella prima fase, ad esempio, siamo 
all’interno di una macchina per produrre 
lo zucchero filato (o è la macchina ad 
essere grossa, o siamo noi ad essere 
piccoli o è proprio un incubo!) con un’a- 
sta centrale che rotea e minaccia di col- 
pirci con oggetti appiccicosi. Anche altre 
fasi sono ambientate chiaramente in un 



54 - Commodore Computer Club 




Finalmente un gioco in 
cui non bisogna 
ammazzare nessuno 
per giungere alla fine 

Computer: Amiga inespanso 
Gestione: Joystick 
Tipo: Arcade 
Softhouse: The Edge's 


S noopy, il bracchetto disegnato da 
Charles M. Schultz , è certamente 
uno dei personaggi più noti nel mondo 
dei fumetti insieme agli altri coprotagoni- 
sti (Peanuts): Linus, Charlie Brown, Lu- 
cy, Schroeder. 


IL GIOCO 



Linus ha smarrito la sua vitale coperta 
e Snoopy il bracchetto si incarica di re- 
cuperarla. 

Questa semplice idea è la base per 
ambientare in una grafica veramente da 
cartone animato (vedi foto) una grande 
serie di piccoli rompicapo da risolvere e 
situazioni da affrontare per giungere allo 
scopo finale. 

Come in un adventure, si trovano in 
circolazione parecchi oggetti, che Snoo- 


py può raccogliere con un semplice mo- 
vimento del joystick verso il basso. Tutti 
gli oggetti hanno uno scopo, che deve 
essere scoperto, ovviamente, dal gioca- 
tore entro i 45 minuti di tempo concessi 
per la soluzione. E’ importante notare 
che il gioco ha almeno due possibili so- 
luzioni, in quanto alla partenza la coperta 
smarrita può essere nascosta casual- 
mente in almento due posti differenti. Si 


noterà anche durante il gioco che gli altri 
personaggi (ci sono tutti i Peanuts) si 
spostano, anche se non sono animati, 
consentendo di movimentare e variare il 
gioco. 


LA TECNICA 

Gli sprites sono grandi e disegnati in 
maniera ineccepibile, sia per quanto ri- 
guarda gli sfondi (belli come i cartoni 
animati originali) che comprendono an- 
che gli altri Peanuts immobili, sia per 
quanto riguarda le animazioni di Snoo- 
py, nuvolette, ranocchi, gatti... 

E’ da notare che non vi sono normal- 
mente tempi di attesa nel passaggio da 
una schermata alla successiva. 

Gli effetti sonori sono ridotti, ma ben 
fatti. Il controllo del bracchetto col joy- 
stick è quanto di più semplice ed imme- 
diato si potesse pensare. 


IL VOTO 

Un gioco che ripone la maggior parte 
del proprio fascino nella grafica di ottimo 
livello e nella simpatia dei celeberrimi 
protagonisti, pur essendo molto sempli- 
ce nella trama. 7 e mezzo. 



Commodore Computer Club - 55 







AH /*** COLORASI 


MEDICO 


ARI ZONA 


WAHTED 

BELLE STARR 
poe 15 000 $ 


Nei panni di un 
cacciatore di taglie 
mostriamo la nostra 
bravura nel Far West 


Computer: Amiga inespanso 
Gestione: Mouse 
Tipo: Arcade 
Softhouse: Loriciels 


U n classico spara a tutti con il revolver 
ambientato nel Far West distribuito 
da una vivace ed intraprendente sof- 
thouse francese è quello che ci vuole per 
calarsi nei panni di un bounty killer. 


IL VOTO 

Un simpatico gioco, tecnicamente va- 
lido, anche se certamente non originalis- 
simo. 7 meno. 


IL GIOCO 

Inizialmente si sceglie il ruolo che si 
vuole ricoprire indicando il viso di uno tra 
otto giustizieri. 

Poi si passa alla scelta dell'ambienta- 
zione (California, Nevada, Utah, Colora- 
do, Nuovo Messico od Arizona ) e del 
lavativo di turno tra sei differenti brutti 
ceffi, dei quali il più quotato e difficile da 
stendere è il solito Billy The Kid. 

Le scelte si fanno sempre "sparando" 
col mouse sul gadget 0 sulla figura inte- 
ressata. Dopo le scelte si entra nel gioco 


vero e proprio. Inizialmente l’ambienta- 
zione è in una tipica strada del Far West, 
con case costruite con travi di legno, 
saloon a porta sbattente e varia fauna 
umana più 0 meno armata. In pratica 
bisogna sparare a tutto ciò che si muove, 
0 minaccia di muoversi, tranne qualche 
povero innocente chiaramente (quasi 


sempre) riconoscibile, che se ucciso ci 
fa perdere dei punti. 

Si deve però sparare con discern- 
imento, in quanto le munizioni non sono 
illimitate. 

LA TECNICA 

La grafica è curatissima in tutti i punti, 
non per niente il gioco, concettualmente 
piuttosto semplice, è distribuito su due 
dischi (da scambiare solo all’inizio di 
ogni partita). Le scelte vengono eseguite 
col mouse su cartine rifinite, con gadget 
rappresentanti facce ed un solo effetto 
sonoro (lo sparo). 

Il pezzo forte è costituito dalle diver- 
tenti animazioni del gioco vero e proprio, 
in cui parecchi personaggi, molto pittore- 
schi, sparano da tutte le parti, si rotolano 
per terra, fanno girare le colf coi pollici 
prima di sparare, spuntano dappertutto 
velocissimamente. 






WEST PHASER 


56 - Commodore Computer Club 














AMIGA BASIC 






* l r ./* .v 

, - . y t ■ < * -* ,• 

li.. -Lt. 
*.> **nr # /rjv ,j* 




! ce^ ' 


.f V ;9D’iJ7 
X’.^vvv.t 



SCHERMO SU SCHERMO 

’ • 9 m • * • « «•* • r V 

• %* « • a • jv^fi 

Un facile scroti, tutto in Basic, per migliorare la presentazione grafica 

di qualunque programma 


di Gregor Samsa 


Intuition. la libreria che gestisce l'inter- 
faccia utente più utilizzata, si presta perfet- 
tamente ad un comodo apprendistato. 

Non è che sia meno complessa di altre, 
ma alcune sue funzioni sono accessibili da 
Basic con molta facilità, per di più consen- 
tendo prestazioni difficilmente implemen- 
tabili con i soli comandi dell'interprete del- 
la Microsoft (AmigaBasic. insomma). 

Richiamare una Libreria da Basic, non è 
però altrettanto automatico: si rende indi- 
spensabile qualche operazione prelimi- 
nare. 

In pratica, dato che ci accingiamo ad u- 
tilizzare Intuition. sarà necessario predi- 
sporre un file Intuition. bmap per il nostro 
programmino, da collocare (preferibil- 
mente) nella stessa directory ove esso ri- 
siederà). o nella directory Libs del disco 
utilizzato per il boot (più complicato). 

In effetti, si può anche inserirlo altrove (p. 
es. in Ram Disk), purché se ne specifichi il 
percorso al momento in cui viene aperta la 
libreria (ne riparleremo tra breve). 

Come più volte ricordato, per ottenere 
questo tipo di file va utilizzato il program- 
ma ConvertFD, presente nella directory 
Basicdemos del dischetto Extras, se- 
guendo le modalità illustrate più volte su 
questa rivista. 

Soddisfatti i bisogni (non troppo recon- 
diti) del nostro AmigaBasic, non resta che 
lanciare il Basic, copiare il listato di queste 
pagine e salvarlo debitamente su disco: 


qualche Guru (di troppo) potrebbe venire a 
curiosare nelle nostre attività. 

Si badi che la prima istruzione del 
programma- 

Library "intuition.library" 

...presuppone che il file Intuition. bmap sia 
presente, come già detto, nella stessa di- 
rectory o in Libs del disco di lancio: se così 
non fosse, si completi il nome tra virgolette 
con il suo percorso completo. 

Se. ad esempio, il file Intuition.bmap si 
trovasse nella directory MieLib del disco 
Work, il comando andrebbe così modi- 
ficato: 

Library "Work: MieLib/ intuition. 
library" 

Il breve programma, come si può consta- 
tare mandandolo in esecuzione, è più che 
altro un semplice Demo grafico, ma svolge 
il suo compito grazie ad un sottoprogram- 
ma (o. se preferite, funzione) compieta- 
mente "autonomo”, estraibile dal suo con- 
testo, e quindi facilmente sfruttabile in ap- 
plicazioni più personali. 

Ma procediamo con ordine. 

Dopo aver selezionato Start dal menu 
Run, viene subito richiesta in input una non 
meglio precisata velocità. 

Si digiti un numero non troppo alto (p. 
es. 3). e Return. 

Lo schermo scrollerà dolcemente verso 
il basso, scoprendo una seconda videata 
posta "dietro”. 

Alla pressione di un tasto, il sipario tor- 


• J v f •! £ 

nerà in alto con la stessa progrèssione. in 
attesa di un'ulteriore pressione di un tasto, 
che farà tornare in ambiente Basic. 

Si eviti, durante l'esecuzione;, del pro- 
gramma. di premere il pulsante sinistro del 
mouse, che potrebbe rendere inefficace là 
pressione dei tasti; qualora si verificasse, 
tale eventualità, basterebbe comunque ri- 
correre ai menu del Basic per uscire dal 
programma, oppure tirare giù gli schermi 
col mouse fino a scoprire la finestra di 
output del Basic, clickarvi sopra, e quindi 
premere un tasto. . ^ r . 


UN NUOVO COMANDO 

; 

L'effetto "sipario" è ottenuto mediante 
una nuova funzione, arbitrariamente cha- 
mata VdScroll. chiaramente individuabile 
in fondo al listato (Sub.... End Sub). 

In pratica, svolgerà il suo compito ogni 
qualvolta viene richiamata con la sintassi... 

Vdscroll velocita%, indirizzoschermoEf 

La variabile Velocita% rappresenta un 
valore intero "corto”, cioè composto di 
due byte, e può anche essere negativo. 

In quest'ultimo caso, lo scrcHI avverrà dal 
basso verso l'alto. 

Chiaro che. per funzionare con valori ne- 
gativi, lo schermo da scrolla/e dovrà già es- 
sere abbassato (anche di un po : ). altrimen- 
ti non produrrà alcun effetto. r 


Commodore Computer Club - 57 



La seconda variabile. Indirizzoscher- 
mo& (riferita allo schermo da scrollare) ri- 
chiede qualche approfondimento. 

Giocando con Intuition, è possibile effet- 
tuare un gran numero di operazioni, come, 
tra l'altro, aprire e chiudere nuovi schermi e 
finestre, spostarli, o disegnarvi sopra. 

Alla base di tutto c’è sempre una "Strut- 
tura". ovvero un gruppo di dati (numerici) 
che risiedono da qualche parte in memo- 
ria. e che la Libreria adopera per ricono- 
scere schermi, finestre, ecc. 

Queste strutture possono essere create 
da programma, per renderle assolutamen- 
te personali, ma... non è il caso di entrare 
nei particolari, o ne verrebbe fuori un bel 
trattato (lo si farà in altra sede, se abbon- 
dantemente richiesto). 

Al momento, tutto ciò che interessa sa- 
pere. è che ad ogni schermo, anche se 
creato tramite l'istruzione Screen del Ba- 
sic. corrisponde una di queste strutture. 

Ed è proprio l'indirizzo in memoria di 
questo^fwpp© didati che dobbiamo forni- 
ire alla nostra funzione (vedremo tra 
poco per-chè), .. 

i Per ottenérlo; è necessario aprire una fi- 
\ nestra (istruzione Window) sullo schermo 

* in questione. * 

I Anche la finestra, come già detto, pos- 

• siederà'tfrici sua Struttura in memoria. 

L'indirizzo di quest’ultima, è però facil- 
; mente ottenibile, dato che esiste (per for- 
\ tuna!) la funzione Basic Window(7) 

» (vedi manuale). 

{ 


Ebbene (Machiavelli, al confronto, era 
un principiante), al byte 46 di questa strut- 
tura è memorizzato, in formato Intero Lun- 
go (= 4 byte), l'indirizzo di inizio della 
struttura-schermo. 

In definitiva, la variabile che interessa 
può essere perciò ricavata così.- 

lndi rizzoschermo& = PeekL (window 
(7) + 46) 

...come riscontrabile nel listato (variabile 

sch&). 

VARIAZIONI SUL TEMA 

Riassumendo, affinchè il nuovo coman- 
do VdScroll funzioni correttamente, il pro- 
gramma che ne fa uso deve quindi neces- 
sariamente provvedere a: 

1) Aprire la libreria Intuition.library, ricor- 
dando (eventualmente) di . specificare il 
percorso per rintracciare il file Intui- 
tion.bmap precedentemente realizzato. 

2) Aprire uno schermo (quello da scrolla- 
re), e su di esso una finestra (che poi, volen- 
do. potrà essere richiusa), quindi adopera- 
re la formuletta appena vista per rintrac- 
ciarne l'indirizzo di struttura. 

3) Invocare la funzione secondo la sua cor- 
retta sintassi. ■ • 

Alla base del nuovo comando, come ri- 
levabile nella Sub del listato, è la routine 
Movescreen della Intuition Library. 

Questa viene richiamata adoperando il 
comando Cali, in quanto non restituisce 
alcun valore; per lo stesso motivo t al mo- 
mento di aprire la libreria, non è necessaria 


BASIC; TROPPO FORTE 

Second©.un luogo comune di (quasi) universale accettazione, il Basic è figlio ba- 
stardo di più nobili e titolati linguaggi. 

L'affermazione, tuttavia, è solo apparentemente limitativa. 

JDa.unpuntq di vista "fisico" contiene certamente un minimo di verità; nessu- 
no può negare che lo sviluppo (abnorme?) di tale linguaggio era in origine previ- 
sto in funzione di una utenza dilettantistica. 

Di contro si è visto come, a seconda delle macchine sulle quali è implementa- 
to (ed in ossequio ad una corretta logica di evoluzione) proprio il Basic è andato 
assumendo connotazioni simili a quelle di altri linguaggi. 

Senza, ovviamente, pensare ad impossibili accostamenti con il linguaggio 
macchina (mai mischiare il sacro con il profano), basti ricordare l'assunzione, p. 
es. nel Commodore 1 28. di possibilità tipicamente "Pascaliane". 

Con Amiga, anzi con AmigaBasic, lo stesso "Transfert" si è sviluppato nei 
confronti del C. linguaggio di fatto molto più vicino alla struttura del computer... 
rrìa ^rscVie più complesso. 

Chi non ha voglia (o tempo) di scontrarsi con l'esuberante punteggiatura di 
quest'ultimo linguaggio, non ha però di che lamentarsi. 

A parte l'inevitabile, e spesso ingombrante, presenza dell'interprete, Amiga- 
B^sip-può anch'esso sfruttare molte (non tutte!) delle risorse nascoste del no- 
stro” àìmàtò 16 bit, a patto di sapersi aggirare (un po') tra le cosiddette 
Librerie di sistema. 

• Difficile? 

L'importante è cominciare. 

Naturajmente dalle cose più semplici, anche se non necessariamente 
rrieriò utili' 


58 - Córrtftìótiórè Computer Club 


una preventiva istruzione Declare 
Function. 

Movescreen funziona solo per scroti ver- 
ticali, ma è necessario ugualmente inservi 
un parametro riguardante il movimento o- 
rizzontale (0 nel listato). 

La sua completa sintassi di chiamata 
è: 

Cali Movescreen (indirizzoscher- 
moEr, X%, Y%j 

...con X ed Y che indicano di quanti pixel 
per volta deve essere spostato lo schermo 
in senso orizzontale (non implementato) 
oppure verticale. 

Nel programma demo, viene banalmen- 
te disegnato uno schermo "sottostante". 

A parte l'ovvia possibilità di migliorarne 
la grafica, magari caricando una immagine 
di Deluxe Paint (se ne riparlerà...), lo scroll 
potrebbe essere effettuato sullo schermo 
disegnato: basterebbe eliminare la riga 
contenente l'istruzione Screen 3... 

Analogamente, si potrebbe rendere "va- 
riopinto” lo schermo che fa da sipario, o 
ancora fare scrollare in successione più 
schermi: insomma, c'è pròprio di che 
sbizzarrirsi. 

Sulla base di quanto visto, diventa inoltre 
molto semplice aggiungere altre feature ai 
nostri programmi. 

Una volta capito come ottenere l'indiriz- 
zo in memoria della struttura di uno scher- 
mo. è infatti immediata la possibilità di atti- 
vare altre due funzioni di Intùftion che non 
necessitano di altri parametri. 

Si sta parlando di Screentoback (in- 
dirEr) e Screentofront (indìrEr), che. ri- 
spettivamente. portano indietro ed avanti 
lo schermo il cui indirizzo è specificato co- 
me parametro. 

Per non restare sul vago, si provi ad ag- 
giungere nel listato, subito sotto la secon- 
da chiamata a Vdscroll (e prima della label 
Fine:), queste due righe: 

GOSUB attesa 

CALL screentoback(schEr) 

Lanciato ancora una volta itprogramma. 
si vedrà come, dopo il risollevarsi dello 
schermo-sipario, l'ulteriore pressione di un 
tasto provocherà l'immediata. ^comparsa 
dello schermo sottostante. 

A parte le possibilità pratiche del co- 
mando Vdscroll, non si sottovaluti l'impor- 
tanza di quanto acquisito, ariòhe se le ca- 
pacità di Intuition non si fermano certo 
qui. 

Applicazioni più sofisticate janno infatti 
pendere l’ago della bilancia irffavore del C 
o dell'Assembly. 

Ma anche adoperando tali linguaggi, e 
nonostante le ovvie differenze, l'uso di U- 
brerie e Strutture rimane pressoché iden- 
tico. 

Per chi non mira così in alto, S'è comun- 
que un Basico Vdscroll con ctifeonsolarsi. 




DÉrtO FUNZIONE BASIC "VDSCROLL" 

Vib • .lo 

sintassi 1: t 

CALL Vdscroll (velocitai , indir . schermo& ) 
sintassi 2: . 

Vdscroll velocitai, indir . schermoà 

1 

= = = = = = = = = 2 = = = = = : = 2 = z = = = = = : 

TlJOi , 

v -- — apertura libreria 


LIBRAR "int^itiqn v library" 


SCREEN 2 , 320 , 250 ,2,1: WINDOW 2,,, 0,2 

• •. , ,, y. c .nn ’ 

* indirizzo schermo di scroll 

SCREEty 3 , 320 , 250 ,1,1: WINDOW 3, , ,0,3 
sch&=PEEKL ( WINDOW ( 7 ) +46 ) 

IF sch&=0 THEN 

PRINT "ERRORE! PREMI UN TASTO" 

GOTÒ fine 
END ir’ ' . 

, 'Tic ■. . .*.• 

“ ' lei Z~ 7 “ r > ?! u " c Tsr £:• fcv r 1 

INPUT ^velocita \ " ; v%:CLS 
WINDOW, OUTPUT 2 

PALETTE 0 , 0 , 0 , 0 : PALETTE 1 , . 93 , . 2 , 0 
PALETTE 2, '33, .87,0 .PALETTE 3,1,. 13,. 93 
LINE (35 , 35) -(170,170) ,l,bf 
CIRCLE ( 100 , 100 ) , 50 , 3 : PAINT ( 100 , 100 ) , 2 , 3 
LOCATE. 13 , 9 : PRINT "VDSCROLL ! " 

LOCAI^ 27, 20: PRINT "PREMI UN TASTO" 


Vdscroll v%,sch& 

, .. II. ^»iv vC h -jIi 

“£z ~ “ ^6 “j Tirile:” ” 


WINDOW OUTPUT 3 

LOCATE 27, 20 .PRINT "RIPREMI UN TASTO" 


Vdscroll -v%,sch& 


f ine: 

GOSUB attesa 

WINDOW CLOSE 3: WINDOW CLOSE 2 

SCREEN CLOSE* 2-: SCREEN CLOSE 3 — 

LIBRARY CLOSE: END . f ;0}2Afe 

attesa : 

x$=INKEY$ : IF x$ = ""THEN GOTO attesa *- 
RETURN ip. va fb nb'HW*' 

, • ; ;■ ' J 

’«««« FUNZIONE VDSCROLL =======*«==* 

• ^ * ‘ ‘ * ol r ^ 

SUB Vdscroll ( velocitai , schermo* ) STATIC 
y%=260/velocita% 

IF velocitalo THEN GOTO su 


• -I J^A 


GOSUB attesa 


FOR x%=0 TO y% 

CALL movescreen ( schermo& , 0 , velocitai ) 
NEXT 

GOTO torna 

SU* 

FOR x%=y% TO 0 

CALL movescreen (schermo&, 0 .velocitai) 
NEXT 
torna : 

END SUB 

:• emisi ìoqrn». 

, __ r-. - 

** ***** ** **** ***** *** .imi oc.er 


Commodore Computer Club - 59 




ARDUA FORM ATTAZIONE 
Sono un novello utente di 
Amiga 500, e mi sono scon- 
trato con una difficoltà che 
sembra insormontabile: 
Non riesco a formattare i 
dischetti nuovi in alcun mo- 
do, neanche da Wor- 
kbench. Faccio presente 
che non posseggo il secon- 
do drive e che, provando ad 
usare l’opzione Initialize 
del menu di Workbench, ot- 
tengo solo segnalazioni ti- 
po Disk Corrupt, DfO: Bad, 
oppure Error While Ope- 
ning Sys: System / Format. 
Qualche volta tutto sembra 
partire correttamente, ap- 
pare la finestra con la scrit- 
ta Formatting Cylinder 
...79, il 79 diventa 78 e poi II 
procedimento si blocca. Ho 
provato ad usare DiskDoc- 
tor, ma senza risolvere il 
problema. Il colmo è che in- 
vece la copia di un disco su 
uno nuovo riesce perfetta- 
mente! Che cosa posso fa- 
re? 

(Matteo Diterlizzi - Milano) 

A nzitutto, DiskDoctor non 
c'entra proprio niente in 
quanto serve a ricostruire il 
contenuto di un dischetto 
danneggiato, ma sempre che 
esso sia già nel formato Ami- 
gaDos, ovvero preventiva- 
mente formattato e (più o me- 
no) infarcito di dati, files, ec- 
cetera. 

Il fatto che la copia riesca, 
inoltre, fa supporre che non ci 
siano problemi di malfunzio- 
namenti hardware. 

Prova dunque a seguire 
scrupolosamente questa pro- 
cedura (per un solo drive), 
badando che il disco Wor- 
kbench sia una copia integra- 
le dell’originale, senza alcun 
tentativo di "personalizzazio- 
ne . 

1) Dopo aver caricato il 
Workbench, estrarre il disco 
di sistema dal drive ed inseri- 
re quello da formattare. Se 
questo è ancora vergine, la 



sua icona sarà per forza di 
cose segnalata dal nome 
DfO: bad (che sta per cattivo, 
no buono, schifido). 

2) Clickare (una volta sola, 
o appariranno i vari requester 
disk corrupt..., e simili) sulla 
sua icona, dopodiché sele- 
zionare Initialize dal menu 
Disk del Workbench. Appari- 
rà il requester: Please repla- 
ce volume Workbench 1.3 in 
any drive. 

3) Obbedire, reinserendo il 
disco di sistema. 

4) Dopo qualche ronzio del 
drive, al nuovo avviso di Ami- 
ga (Please insert disk to be 
initialized in drive dfO:), toglie- 
re il disco Workbench (ma 
soltanto dopo che la spia si è 
spenta) e schiaffarvi quello 
da formattare. 

5) All’ennesimo messaggio 
Ok to initialize..., clickare su 
Continue , ed attendere che il 
lavoro venga ultimato. 

E così sia. 

Se le varie fasi sono ese- 
guite alla lettera, e con un 
disco di sistema non manipo- 
lato, tutto dovrebbe andare 
per il verso giusto. Per pre- 
cauzione, si controlli che il di- 
sco Workbench sia protetto 
dalla scrittura (tacca aperta). 

Un pò perplessi lascia inve- 
ce l’eventualità che il procedi- 
mento di formattazione si av- 
vìi regolarmente, e poi non 
continui dopo l’iniziale segna- 
lazione Formatting Cylinder. 

In questo caso, occorre 
controllare che non sia opera 
di un virus (tramite un pro- 
gramma virus killer), soprat- 
tutto se il dischetto da format- 
tare era già usato oppure si 
era adoperato in precedenza 
il floppy Workbench non pro- 
tetto in scrittura, magari dopo 
aver giocato un po’ con qual- 
che game di provenienza 
dubbia. 

Per la cronaca, il vecchio 
ma sempre diffuso Byte Ban- 
dit Virus, provoca (tra le altre 
cose) proprio questo tipo di 
anomalia. 


ISI * 

DOVE SAVE? 

Non riesco a registrare pro- 
grammi basic su un disco 
nuovo. Al momento del sa- 
ve, il computer mi chiede il 
disco Extras per salvarli lì! 
(Carmine Esposito - Napoli) 

P er superare la difficoltà, 
anche in questo caso le- 
gata soprattutto alla mancan- 
za di un secondo drive (ma la 
vogliamo capire che è quasi 
indispensabile per lavorare 
più tranquilli e distesi?) basta 
far precedere, al nome del 
programma da salvare, quel- 
lo del disco voluto. 

Se, per esempio, si intende 
archiviare il nostro bel file ba- 
sic in un disco cui abbiamo 
assegnato il nome MieiLavo- 
ri, basterà immettere nella fi- 
nestra del Save... 

Miei La vor'r.nomeprogram 
ma 

...badando a non dimenti- 
care il simbolo due punti(:) e 
senza lasciare alcuno spazio 
prima e dopo di esso. 

Per ricaricare il file nell’edi- 
tor occorrerà, come ovvio, 
fornire lo stesso tipo di indica- 
zione (definita Path, cioè Per- 
corso del file). 

Come alternativa, dopo es- 
sere "entrati” in ambiente Ba- 
sic, si può impartire (diretta- 
mente nella finestra di output) 
il comando: 

Chdir "Miei Lavori:” 

Dal questo momento in poi 
qualunque operazione di let- 
tura o scrittura sul drive, verrà 
forzata verso il disco (o direc- 
tory) desiderato. 

E’ chiaro che, in questo ca- 
so, non sarà più necessario 
specificare nel nome dei file 
l’intero percorso. 



60 - Commodore Computer Club 



SGANCIARSI 
DAL W-OB KBENCH 
Ho copiato alcuni files in un 
floppy che vorrei adopera- 
re come ” disco lavoro", ma 
non riesco a farli partire. 
Esiste un modo per farlo , 
senza dover necessaria- 
mente ricorrere al Wor- 
kbench? E’ vero che esiste 
un sistema chiamato Star- 
tup-Sequence? 

(Claudio Canis - Savona) 

S e il problema è limitato 
alla possibilità di lanciare 
un file presente in un altro 
dischetto, valgono le stesse 
considerazioni espresse nel- 


la risposta precedente, anche 
se non si tratta di files basic. 

Se, invece, si vuole rende- 
re indipendente il disco che li 
contiene, il discorso si com- 
plica un po’, e non può essere 
esaurito in questa sede. 

Grosso modo, comunque, 
si devono effettuare le se- 
guenti operazioni: 

Copiare le directory L, Libs 
e Devs prelevandole dal di- 
sco Workbench. 

Creare una directory S (co- 
mando Makedir Nomedi- 
sco.S) ed editare un file (non 
un "sistema”) di nome Star - 
tup-Sequence che contenga 


la procedura di lancio; dicia- 
mo che, ridotto proprio al mi- 
nimo, basterà che contenga 
le sole due istruzioni... 

Loadwb 

Endcli 

Creare una directory C, e 
copiarvi almeno i comandi 
adoperati nella startup-se- 
quence, oltre ad Execute e 
Run{\\ tutto va prelevato dalla 
directory C del disco di siste- 
ma). 

Installare il dischetto, ovve- 
ro digitare da Shell il coman- 
do Instali Nomedisco: 

Per chi è alle prime armi, 
non sarà proprio come bere 
un bicchier d’acqua: nella 
schematica descrizione, oltre 
ad alcune difficoltà intrinse- 
che, si nascondono infatti nu- 
merosi trabocchetti, supera- 
bili solo con un minimo di 
esperienza. 

Un consiglio: cimentarsi 
nell’impresa solo dopo aver 
approfondito le cognizioni 
che riguardano l’uso di Shell 
e del Dos in generale. 

Per chi si sente già pronto, 
o vuole comunque provarci, 
si ricorda che l’argomento è 
stato trattato in modo molto 
più approfondito sul non lon- 
tano numero 68 (ottobre ’89) 
della rivista, articolo Wor- 
kbench lavori in corso (even- 
tualmente disponibile presso 
il nostro servizio arretrati). 


SI 

DE GUBIS 

Ogni tanto, usando il mio 
Amiga 500 inespanso, ap- 
pare il fatidico " Guru Medi- 
ta t io n". 

A parte gli altri vantaggi de- 
privanti dall'avere un mega 
di memoria, il problema si 
risolverebbe se acquistas- 
si l’espansione? 

(Antonio De Giorgi - Marciano 
di Leuca) 

I l Guru, caro lettore, è una 
bestia fedele: non abbando- 
na mai il suo amato padrone. 

Con l’espansione vengono 
di certo ridotti i tilt legati alla 
scarsa disponibilità di memo- 
ria, ma, ahinoi, non sono solo 
questi i motivi che portano al 
blocco di Amiga. 

Rimedi? 

Una buona dose di rasse- 
gnazione, sperando in tempi 
migliori (Kickstart 1.4?), ma 
nel frattempo fornendosi di 
qualche programma tipo 
Gomf oppure Noguru, che 
consentono almeno di limita- 
re i danni. 


SI 


COMINCIARE CON IL C 

Ho deciso di imparare il linguaggio C, così mi sono 
procurato un compilatore ed ho iniziato a leggere il 
testo di Kernighan & Ritchie, provando poi sul com- 
puter i risultati dei miei esperimenti. Sono riuscito 
ad ottenere qualche risultato, ma il mio lavoro si è 
arenato nell’impossibilità di capire e conoscere le 
decine di Flag e strutture che si trovano nei file di 
inclusione... 

(Paolo Flora - Paluzza) 
r>i • , 

\f , » 

> • s 

L a lettura del Kernighan & Ritchie (per i meno esperti: 

i padri fondatori del linguaggio) è senz’altro un passo 
(quasi) obbligato per conoscere il linguaggio C. ma è 
altrettante) importante accostare il linguaggio alla strut- 
tura dell^ macchina, nel nostro caso l'Amiga. 

Il che,, tradotto in parole povere, significa avere la 
possibilità di documentarsi con esattezza su librerie, 
strutture, device, hardware, eccetera. 

A tale scopo, ed il discorso non si limita al solo C. è 
pressoché indispensabile acquistare i quattro (o tre nell' 
ultima revisione) volumi Reference Manual della Addi- 
son - Wesley (in inglese), ognuno dei quali descrive: 
Libraries and Devices, Exec, Intuition. Hardware. 

A questi, inoltre, è consigliabile aggiungere un qual- 
che testo didattico non finalizzato all’apprendimento ge- 
nerale del C, ma specificamente dedicato all'Amiga. 

Ogni buona libreria, e spesso anche i negozi di articoli 
informatici, propongono in genere una discreta scelta di 
titoli al riguardo, anche in italiano. 

Il tutto, come intuibile, comporta un non indifferente 
danno.., alla tasca. 

Per chi non potesse (o volesse) sottoporsi a questo 
volontario salasso, non resta che affidarsi a quanto 
rintracciabile tra le pagine delle varie riviste del settore. 



Commodore Computer Club -61 






EB1NTER QK 

Posseggo una stampante 
Commodore Mps 1250, che 
adopero con il mio C/64. Vi- 
sto che penso di passare 
ad Amiga, sapreste dirmi 
se esistono problemi di 
compatibilità? 

(Marco Aliena - Pordenone ) 


N essun problema, il con- 
nubio è reso possibile 
dall'Interfaccia Centronics di 
cui è dotata la stampante. 

Inoltre, a maggior garanzia, 
nei dischetti di sistema esiste 
un driver specifico proprio per 
la MPS 1250. in emulazione 
EpsonX. 


P.S. La lettera, come del 
resto avviene per tutte (anche 
quelle non pubblicate), è sta- 
ta "letta con attenzione". 


ORIGINALI? 

Con alcuni giochi originali 
che possiedo, mi capita di 
veder apparire un request 
"Please insert volume L" e 
lo start si blocca; oppure 
"Error validating disk” e il 
consiglio di ricorrere a Di - 
skdoctor: dopo averlo fat- 
to, però, non si è riparato 
nulla. 

(Liborio Di Miceli- Cor leone) 

I l secondo problema, può 
essere dovuto ad involonta- 
ri maltrattamenti del floppy, 
oppure a precoci estrazioni 
dal drive mentre questo è an- 
cora in funzione. 

In questi casi. Diskdoctor 
funziona solo se il disco non 
è dotato delle protezioni che 


ASSEMBLY CONTRO C 

Sono un "ex” del C/64, e credo di aver fatto uno sbaglio 
ad imparare il linguaggio macchina per quel computer 
(seguendo i vostri consigli), visto che su Amiga sono 
costretto a studiare tutto daccapo. Meglio dedicarsi al 
basic, o al C, che almeno è standardizzato su tutti i 
computer. 

(Giuseppe Palermo - ??) 

S e, come dici, hai imparato bene \'Assembly"ati otto bit", 
allora non può certamente esserti sfuggita l’introduzio- 
ne che normalmente viene fatta a tale linguaggio, tanto nei 
testi specializzati che nelle pagine della nostra rivista. 

Dove, ben in evidenza, è stato sempre precisato che il 
linguaggio macchina è il meno "trasportabile" in assoluto, 
visto che, di norma, dialoga direttamente con il micropro- 
cessore specifico per il tipo di computer. Il che, come ben 
saprai, comporta vantaggi e svantaggi. 

Non è però corretto affermare che quanto in precedenza 
appreso "non serve a niente": anche se i codici dell Assem- 
bly 68000 saranno diversi da quelli del 6502. un byte è pur 
sempre un byte, e la sua manipolazione, con qualche 
doveroso approfondimento, non è poi così differente. 

Con questo non si vuol dire che con Amiga siano tutte 
rose e fiori, ma ciò che si è imparato su un C/64 non è da 
sottovalutare. 

Se non altro, evita di dover apprendere ex novo le basi 
teoriche del linguaggio. 

Un Branch o un Jump to subroutine (Jsr), o uno scorri- 
mento di bit, per esempio, non saranno una novità assoluta, 
come pure l'uso di Macro Istruzioni in un sorgente svilup- 
pato con un buon pacchetto Assembler. 


Paradossalmente, molti singoli codici dell'Amiga risulte- 
ranno un sollievo per gli "ex" del C/64, che per raggiungere 
lo stesso scopo dovevano creare intere routines 

Di indubbia maggiore difficoltà è il cambiamento di "logi- 
ca" cui si è costretti, soprattutto in rapporto al famoso 
"multitasking" e alla nuova dimensione a 16 bit. 

Inoltre, non bisogna dimenticare che l’Assembly può 
essere utilizzato in due modi: rivolgendosi direttamente 
all’hardware, o adoperandolo ad un livello leggermente più 
alto, sfruttando le routines di sistema (le cosiddette librerie). 

Il primo è decisamente ostico e non sempre consigliabile, 
dati i continui mutamenti apportati al sistema dalla Commo- 
dore. 

Il secondo, invece, è molto più abbordabile. 

Quanto al C. la cui conoscenza (anche approssimativa) 
è diventata pressoché obbligatoria per chi usa Amiga, è 
certamente più standardizzato dell'Assembly, ma. a meno 
che non ci si limiti a qualche Printf : implica anch'esso un 
notevole approfondimento dei meccanismi interni del com- 
puter. E, si badi, si sta parlando proprio dei meccanismi 
particolari di un certo tipo di macchina. 

Non si pensi, quindi, che sia poi cosi facile da... digerire, 
o che. cambiando computer, tutto rimanga assolutamente 
identico. 

Le preferenze, poi, sono un fatto soggettivo, oltre che 
legate a particolari applicazioni: c e chi (indovinate come la 
pensa il sottoscritto...) detesta la sintassi del C. e chi la trova 
sublime, ma l'ideale sarebbe conoscere entrambi f linguag- 
gi. 

Salvo poi scoprire che. tutto sommato, il buon vecchio 
basic (non necessariamente Amiga Basic, e non necessa- 
riamente interpretato) è più che sufficiente per quello che 
si intende realizzare. 


62 - Commodore Computer Club 







spesso sono presenti nel 
software commerciale. 

Gli altri inconvenienti, a di- 
spetto di quanto affermato, 
sono per lo più da attribuirsi a 
copie pirata dei games. 


13 

A2000 E MEMORIA 
E ’ possìbile ovviare all’i ri- 
conveniente dovuto alla 
configurazione degli Ami- 
ga 2000 con 1 Mega byte di 
Chip Ram, per cui alcuni 
giochi non funzionano , 
mentre su A500 girano be- 
nissimo? 

(Daniei San - Firenze) .. 

- . - %,'s. 

« « # * 

Ho letto su Postamiga del 
n. 70 (Dicembre 89) la rispo- 
sta data ad un possessore 
di Amiga 2000 che chiede- 
va come appurare il tipo di 
Ram di cui disponeva. Se- 
guendo quei consiglio , ho 
provato a dare il comando 
Avaii, con II seguente risul- 
tato: Chip 421696... (ecc,); 
Fast 39252Q...(ecc.); Total 
8l4224...(ecc.). Inoltre alcu- 
ni giochi che posseggo non 
funzionano: si tratta dello 
stesso motivo? 

(Bruno Celati - Milano) 

E ffettivamente, l’introdu- 
zione del Mega di memo- 
ria tutta di tipo Chip , ha creato 
qualche problema di compa- 
tibilità con del software che 
non prevedeva una simile 
configurazione. 

In alcuni casi, l'inconve- 
nienté può essere risolto 
semplicemente aggiungendo 
delle espansioni di Fast Ram 
al 2000 (non certo solo per 
qualche giochino, dati i costi). 

Come testimoniato dalla 
seconda lettera, però, non 
tutti i problemi devono essere 
attribuiti al Mega di Chip 
Ram. > 

Il responso di Avaii citato 
da Bruno Celati, infatti, dice 


chiaramente che nel suo ca- 
so la configurazione è quella 
consueta riscontrabile anche 
nei 500 con espansione di 
memoria: 1 /2 Mb di Chip e 1/2 
Mb di Fast Ram. 

Delle incompatibilità, tal- 
volta, possono sorgere an- 
che in rapporto alla versione 
del Kickstart, in questo caso 
più spesso per colpa dei pro- 
grammatori che dei progetti- 
sti di Amiga. Per non parlare 
poi, ed è certamente questa 
la causa più diffusa (anche se 
inconfessata), degli interventi 
"esterni H sul software in modo 
da renderlo copiabile oppure 
per eliminare qualche copy- 
right.;»- 

; 13 

• • 

TUTTO A SUO TEMPO 
Perchè non parlate del 
KickStart 1.4, che pare ver- 
rà immesso presto sul mer- 
cato? 

(Emanuele - Vimercate) 
(Omar Buono - Firenze) 

P erchè le "anticipazioni” 
non servono quasi a nien- 


te. Quando verrà effettiva- 
mente messo in circolazione 
ufficialmente, se ne valute- 
ranno a fondo le potenzialità, 
lo si testerà ben bene, ed in- 
fine se ne scriverà a iosa, ma- 
gari colmando le (abituali) la- 
cune del suo manuale. 

Solo così non risulterà solo 
teoria. 


SFOGO AMARO 
VI scrivo questa lettera 
mentre sono ancora sotto 
l’effetto della frustrazione e 
dello svilimento più totali. 
Dopo essere stato per di- 
versi anni un felice ed 
esperto "sessantaquattri- 
sta ", da circa un mese sono 
diventato un " Amigo ", ed 
ho subito cominciato a 
s ma netta re sul mio A-500 
inespanso, con qualche ri- 
sultato. Dopo aver perso 
molto tempo, non sono pe- 
rò riuscito a venire a capo 
del vostro articolo "Un si- 
stema a prova di Guru" 
(n.66), che tratta della Rad. 
L 'argomento mi è sembrato 


molto interessante, e credo 
di averlo capito, ma non rie- 
sco ad installarla in alcun 
modo, in particolare, dopo 
che inizia l’esecuzione, ii 
sistema mi segnale che la 
Ram è "Full", oppure, dopo 
vari tentativi di modifica, 
che non può creare la direc- 
tory Rad:L. Ma perchè? 
(Tonino Giorgi - Ascoli Pice- 
no) 

C oraggio, caro lettore. Non 
sei il solo ad esserti sen- 
tito perso, dopo la decisione 
di "appendere al chiodo" la 
familiare tastiera del C/64 o 
C/128. 

D’altra parte, sebbene l’uso 
generico di Amiga sia estre- 
mamente semplice, un ap- 
proccio più evoluto richiede 
un minimo di assuefazione al- 
le nuove caratteristiche. 

Ma veniamo al problema 
Rad. 

Intanto, con un 500 ine- 
spanso, è consigliabile asse- 
gnare al parametro HighCyl 
della MountiList un valore 
non troppo alto, non supe- 
riore a 29. 

Il fatto, però, che nel caso 
specifico il file batch che do- 



Commodore Computer Club - 63 





ACCHIAPPA PARAMETRI 

Ho un problema che mi assilla: come posso fare , ado- 
perando il Seka Assembler, a "catturare"! caratteri che 
andrebbero inseriti a destra di un comando che voglio 
progettare? E come procedere per aggiungere II byte 
nullo necessario per passare il parametro alla funzione 
\Nrite? 

(Luigi Marchetto -?? ) 

Q uello accennato è uno dei primi aspetti che di solito si 
affrontano nella programmazione Assembly, ovvero il 
prelevamento di uno o più parametri assegnati tramite una 
linea di comando. 

Per essere più chiari: se, in una finestra Cli o Shell si 
digita (p. es.) List dfO :, List è un file eseguibile che verrà 
caricato dalla directory corrente o da C:, mentre dfO: costi- 
tuisce un parametro che dovrà essere letto dal programma 
di nome List. 

La procedura per leggere la stringa posta dopo il nome 
del file, è più semplice di quanto si possa credere. 

Dopo che si preme il Return (o Enter), infatti, Amiga 
colloca in Ram la stringa-parametro, e i due registri AO e 
DO conterranno, nell’ordine, l’indirizzo ove reperirla e la sua 
lunghezza (che comprende anche il Return finale). 

In pratica, per gestire il parametro, il programma non 
dovrà fare altro, come prima operazione, che recuperare il 
contenuto di AO e DO e salvarlo in una costante o nello 
stack. 

Vediamolo con un esempio, che svolge proprio il compito 
cui il lettore fa riferimento: preleva la stringa parametro, e 
la stampa sul video. 

In pratica, un vero e proprio Print, molto stringato, ma 
efficace e veloce, forse più del tradizionale Echo. 

Si copi, dunque, .il disassemblato presente nel riquadro 
con reditor del Seka Assembler (per entrarvi, tasto Escape 
dopo aver lanciato il programma). 

Si torni poi al prompt Seka> ripremendo Escape, e si 
impartisca il comando W per salvare su periferica il sorgen- 
te (non si sa mai...). 

Si assembli la routine con A (e magari H come opzione 
quando richiesto) e, se non si sono verificati errori, si 
proceda infine con WO, che produrrà il file eseguibile cui 
assegneremo il nome Print (o altro). 

Per testarne il funzionamento, si impartisca in una fine- 
stra Shell oppure Cli... 

Print quello che vuoi 


...seguendo le con- 
suete regole del Dos, 
ovvero segnalando il 
path completo del co- 
mando se si trova in 
una directory o disco 
diversi da quella cor- 
rente (p.es. 

dfl : Print...). 

Come risultato, ve- 
dremo stampare su 
schermo la stringa 
" quello che vuoi". 

La routine, come si 
può notare, è estrema- 
mente semplice (an- 
che se non molto origi- 
nale), e può essere 
ampiamente migliora- 
ta. 

Non fa altro che inse- 
rire nello stack, come 
primissima operazio- 
ne, i registri AO e DO, 
per evitare che il loro 
contenuto venga perso 
nelle successive fasi, 
dato che questi registri 
vengono comunemen- 
te adoperati dalle fun- 
zioni di libreria. 

Volendo, si potrebbe 
decurtare la lunghezza 
(in DO) di una unità, eli- 
minando così il carattere di ritorno carrello che è incluso 
nella stringa. 

Non è invece necessario porre il classico 0 in coda, dato 
che alla funzione Write viene comunicata la- lunghezza 
della stringa. ,9h 

Le specifiche di quest’ultima (AO e DO) vengorjp preleva- 
te dallo stack dopo l’apertura della Dos Library e il e la 
determinazione dell 'handle di output, necessari per attivare 
la funzione Write. 

Quest’ultima richiede, prima di essere richiamata dal 
tradizionale Jsr, che in DI sia presente' THandlé~di output, 
in D2 l’indirizzo della stringa e in D3 la sua lunghezza 


Sysbase: equ 4 
LVOopenlibrary: equ -552 
LVOcloselibrary: equ -414 
LVOoutput: equ -60 
LVOwrite: equ -48 

* salva indirizzo e lunghezza 
movem.l aO/dO, -(sp) 

* apre libreria dos 
móve.t #nomlib, al 
moveq #0, dO 
move.l sysbase, a6 

jsr LVOopenlibrary (a6) 
tst.l dO ; se 0, errore 
: beq uscita 

move.l dO, a6 : base doslib. 

* preleva handle output 
jsr LVOoutput (a6) 
move.l dO, di ; per write 

* scrive stringa parametro 

movem.l (sp) + , aO/dO 
move.l a0,d2 J 

move.l dO, d3 

jsr LVOwrite (a6 )7BU 

* chiude libreria dos 

move.l a6,a1 ‘so 

move.l sysbase, ba6 
jsr LVOcloselibrary (a6) 

u ^ ose 

uscita: rts 

. ^ 6 " . 

nomlib: de ’dos.library’, 0 


vrebbe installare la Recove- 
rableRam si blocchi all’inizio, 
ovvero quando tenta di crea- 
re la directory L nella Rad, fa 
pensare ad un qualche errore 
di copiatura. 

Con molta probabilità, da 
qualche parte si è adoperato 
Ram: invece di Rad:. 


Il tre file batch pubblicati 
nell’articolo, comunque, sono 
anche stati inseriti nel disco 
Amigazzetta 6, e funzionano 
correttamente. 

Per consolarti, prova a ri- 
cordare il primo mese di con- 
tatto con il C64: funzionava 
tutto al primo tentativo? 



64 - Commodore Computer Club 







66 - LADRI DI MUSICHE 

Lavorando con Amiga capita spesso (sempre?) di ascoltare le meravigliose musiche che fanno da 
sottofondo a videogames o programmi demo di varia natura. Non tutti sono abili compositori di brani 
musicali, e nemmeno numerosi sono coloro in grado di usare i tanti programmi in grado di gestire la 
musica. Ecco, dunque, la possibiltà, operando in Seka Assembler , di “estrarre" i brani musicali, dai 
programmi che possediamo, per inserirli in nostri listati. Inutile dire che la procedura è consigliata a chi 
conosce abbastanza bene Amiga e, soprattutto, ha una certa dimestichezza con la gestione di un 
programma assemblatore. 


74 - OBJECT A BORDO! 

*% 

Al contrario del programma precedente, questo listato consente anche ai principianti (dotati, però, di 
buona volontà) di realizzare una procedura decisamente interessante, ed altrettanto "universale", per 
la gestione semplificata di oggetti grafici. Si tratta, in pratica, di un "Data Maker" (di 64-iana memoria) 
in grado di far incorporare a nostri programmi Basic i dati relativi a Sprite e Bob realizzati comodamente, 
a parte, con uno dei tantissimi tool di pubblico dominio. Un mini gioco dimostrativo consente al lettore 
di meglio comprendere la tecnica descritta. 

Nessun albero viene abbattuto per gli inserti di Commodore Computer Club, stampati su carta riciclata al 1 00% 






Le musiche 
che spesso 
corredano i 
programmi 
posti in 
commercio 
funzionano 
"sotto” 
Interrupt, 
vale a dire 
senza 
disturbare il 

\t\OSv • 1 

programma 

principale 


LADRI DI MUSICHE 

Una procedura efficace per impadronirsi delle musiche dei vostri 
videogames preferiti; e per imparare l’Assembly di Amiga 


di Donato De Luca 


C omporre musica è più difficile che program- 
mare in un qualsiasi linguaggio di program- 
mazione. Chiunque può imparare a program- 
mare, più o meno bene, a seconda del tempo 
che vi dedica e a seconda della sua predispo- 
sizione. Per imparare a programmare non ci 
vogliono particolari doti oltre ad una spiccata 
tendenza al masochismo spirituale e materiale. 


Le cose appena dette non valgono, però, per 
imparare a comporre musica o a disegnare: se 
non si ha un po’ di talento artistico non si riuscirà 
mai a comporre musica decente, che non sem- 
bri il lamento di un cane, oppure a fare un 
disegno che non sembri un quadro astratto. 

Tuttavia un gioco, privo di una buona grafica 
o una buona musica, rischia di sfigurare rispetto 


R ' l U.BDF tW 


fl RE l3 9a© 

©P% 


>eocp @0 © 

©o 


RZROBRTIE TER fi 


66 - Commodore Computer Club 







ad un altro, magari meno divertente e meno 
complesso. 

Le stesse cose valgono per i demo in cui, 
anche se l’aspetto più importante è quello della 
programmazione, anche la musica e la grafica 
ricoprono un ruolo molto importante. 

Che cosa possiamo fare allora, noi poveri 
programmatori senza un briciolo di talento arti- 
stico, per rendere più attraente graficamente e 
musicalmente il nostro ultimo gioco con scrol- 
ling parallattico a 6 livelli? 

Molti programmatori affidano la realizzazione 
della grafica e delle musiche a grafici e musicisti 
professionisti; inoltre in ogni gruppo di pirati vi 
è uno o più membri molto bravi a disegnare e a 
comporre musica. 

Tuttavia, per procurarsi delle buone musiche 
vi è anche un altro sistema: rubarle. 

Molti musicisti per comporre le musiche de- 
stinate ai demo usano un editor musicale chia- 
mato Sound Tracker, di cui ne sono state fatte 
un’infinità di versioni, la prima delle quali è stata 
scritta da Karten Obaraski. 

Tali musiche possono essere inserite con 
elevata facilità nei giochi, nei demo, perfino nei 
word processor, poiché la stragande maggio- 
ranza delle routine replay (che, ricordiamo sono 
quelle routine che hanno il compito di suonare 
le musiche) girano in interrupt, di solito durante 
quello generato dal Vertical Blank . 

Dal momento che le musiche seguono sem- 
pre la stessa struttura, dal punto di vista dell’or- 
ganizzazione dei dati, qualche furbacchione ha 
pensato che, una volta che il demo ha finito di 
essere eseguito, i dati della musica saranno 
ancora presenti in memoria. 

Conoscendo la struttura con cui viene salvato 
un modulo (ricordiamo che un modulo contiene 
i dati riguardanti la musica realizzata con il 
sound tracker e anche quelli relativi agli stru- 
menti utilizzati), basterà scandagliare l'intera 
memoria alla ricerca della fatidica struttura dati; 
una volta trovata la si potrà salvare. 

Questo è il principio su cui si basano i Sound 
Rippers. Essi in genere, una volta localizzato il 
brano musicale, possono salvare i suoi dati, e 


quindi la musica stessa sotto forma di modulo 
o di musica (la quale, però, non contiene i dati 
degli strumenti utilizzati), salvare solo uno stru- 
mento, suonare la musica, modificarne il nome 
ecc.. 

Tuttavia, per far suonare una musica salvata 
sotto forma di modulo, ci deve essere qualcosa 
che la suona. Questo qualcosa non è altro che 
una breve routine in assembler chiamata, di 
solito, Replay Routine. 

Ciò implica che, per far eseguire la musica 
appena rubata senza l’ausilio di un sound-rip- 
per o di un editor compatibile, dovremo usare 
per forza un assemblatore in modo da unire in 
matrimonio la routine suonatrice con i dati da 
suonare. 


RIPPER TIME 

Recentemente ci è capitato un Ripper che 
include, tra le sue numerose funzioni, un’opzio- 
ne mai apparsa prima: la possibilità di salvare 
la musica direttamente come file eseguibile, per 
farla successivamente suonare senza passare 
per l’assemblatore; il che, obiettivamente, è una 
pacchia. 

Il suddetto programma si chiama Soundtrac- 
ker Utilitie ed è un programma di pubblico do- 
minio (freeware) scritto da Gigicar del gruppo 
Phoenix ( che, se non andiamo errato è un grup- 
po di programmatori Belgi). 

L’utility è strutturata in 5 menu: Load, Save, 
Options, Help, Quit. Inoltre è presente (in bas- 
so) un simpatico equalizzatore che monitorizza 
i quattro canali audio. Vediamo le funzioni prin- 
cipali: 

Load: Offre tre opzioni, la prima delle quali 
permette di caricare un modulo da disco. Ricor- 
diamo che un modulo, dato che oltre ai dati della 
musica contiene anche quelli degli strumenti 
utilizzati, spesso raggiunge i 60 kbytes, ma a 
volte supera anche i lOOkbytes. L’opzione è 
molto comoda in quanto permette di rendere 
eseguibili nostre musiche composte, sempre se 
ne siamo capaci. 


■ sìb 

,, . ; 

I brani 

musicali 

sono formati 


■ * * • * *- *> 

da piu 

moduli, 

ognuno 

■ ' - 'T-> 

incaricato di 

. \ ; 

svolgere 

determinate 

funzioni 






La ricchezza 
eia 

complessità 
delle opzioni 
disponibili 
non sempre 
esaudiscono 
le esigenze 
dell’utenza 


COPIALO PER TELEFONO 

Anche i listati presenti in queste pagine possono 
esser tirati giù per mezzo del modem; se, ovvia- 
mente, ne possedete uno. 

La procedura per collegarsi con la nostra banca 
dati (attiva 24 ore su 24) è riportata su altra parte 
della rivista. 

Chi non possiede il modem (che aspettate a 
procurarvelo?) può tuttavia richiedere il dischet- 
to, contenente il software, presso il nostro servi- 
zio arretrati. 


Save: Questo menu è la perla del program- 
ma.Contiene 6 opzioni: Modules, Song, Sam- 
ple, Executable , Plst, Quit. 

La prima opzione (modules) permette di sal- 
vare la musica trovata come modulo. Bisogna 
stare attenti allo spazio perchè un modulo ne 
occupa parecchio. 

La seconda opzione permette di salvare solo 
i dati relativi alla musica. 

La terza opzione permette di salvare uno o 
più strumenti. 

La quarta opzione è quella che rende unico il 
programma perchè consente di salvare la mu- 
sica trovata in memoria come un programma 
eseguibile direttamente da Cli, in quanto i dati 
riguardanti sia la musica che gli strumenti ven- 
gono salvati insieme ad una routine 

di replay. 

Purtroppo la routine ha tre nei. Il 
primo, al quale non possiamo porre 
rimedio facilmente, consiste nel fat- + 

to che non si può far eseguire il file 
ottenuto direttamente da Wor- 
kBench poiché alla routine di replay 
manca quella parte di codice che 
chiede il permesso al WorkBench di ^ 

partire. r 1 ^ 

Il suo autore ha però affermato 
che rimedierà all’inconveniente in |b. & 

una prossima versione dell’utility. Al ^ 

secondo neo, invece (ammesso 
che voi lo considerate tale), possia- 
mo porre rimedio molto facilmente. 


La routine smette di eseguire la musica quan- 
do viene premuto il pulsante sinistro del mouse; 
il che va benissimo in nostri programmi (purché 
teniamo conto di tale particolare); se, però, 
volete inserire una musica (ricordiamo che la 
routine di replay gira in interrupt) in un program- 
ma che fa anch’esso uso del pulsante sinistro 
del mouse, la cosa seccherebbe un pò, per ovvi 
motivi. 

Cambiando, però, un byte nel programma 
eseguibile, si potrà interrompere l’esecuzione 
tramite, ad esempio, la pressione del pulsante 
fire della porta 2. Ad ecceziode di alcuni giochi 
(e neanche poi tutti) sono ben pochi i programmi 
che fanno uso del pulsante di fuoco della porta 
due! 

Per chi stesse meditando sull’opportunità di 
inserire una colonna sonora di propria compo- 
sizione in un videogame commerciale, ricordia- 
mo che, anche se la routine di replay gira in 
interrupt, è sufficiente che sia disabilitato l’inter- 
rupt di livello 6 (quello che viene dalla CIA) e la 
nostra musica non suonerà affatto. 

Una caratteristica interessante della routine 
di replay utilizzata, è che essa ha una pelle 
molto dura perchè gira a suon di interrupt di 
livello 6, il quale non viene soppresso, al con- 
trario di quello che accade con Pinterrupt di 


f®aT| 


£**501 









livello 3 (generato all’inizio di ogni Vertical- 
Blank, per chi se ne fosse dimenticato). 

Successivamente sveleremo i segreti di alta 
chirurgia necessari per eseguire l’operazione 
sul file eseguibile. 

Passiamo ora al menu OPTIONS che con- 
sente di effettuare 5 scelte: 

I ) Change Names : consente di cambiare il 
nome della musica e degli strumenti da essa 
utilizzati. 

2) Play Sampie : consente di suonare uno 
strumento 

3) Filter Ori /Off : attiva o disattiva il filtro passa 
alto. Ricordiamo che l’Amiga 1000, e alcune 
serie di Amiga 2000 e Amiga 500, non dispon- 
gono della possibilità di comandare via software 
l’attivazione o la disattivazione di tale filtro. 

4) Play Ori / Off: consente di suonare l’even- 
tuale modulo trovato in memoria. Quando la 
musica viene eseguita, viene attivato in basso 
un equalizzatore a suon di Copper che monito- 
rizza i 4 canali audio. Ovviamente, se non è 
stata trovato alcun modulo in memoria, questa 
opzione non darà alcun effetto.- 

5) Quit: ci sfugge il significato di tale incon- 
sueta opzione... 

L’opzione Help presente nel menu principale, 
come è facilmente intuibile, fornisce le istruzio- 
ni. 

II programma analizzato, pur essendo un ot- 
timo programma ha, a nostro avviso, un grosso 
difetto, che colpisce specialmente gli utenti cui 
è destinato, cioè quelli meno esperti, che di 
solito hanno solo 51 2k oppure il vecchio Agnus 
(quello che riconosce come Chip-Ram solo i 
primi 512 kbytes di memoria). Indovinate qual 
è? L’occupazione di memoria! 

Il programmino occupa circa 30k, quantità che 
può far sorridere chi dispone di 8 MegaByte di 
memoria. C’è da tener presente, tuttavia, che il 
programma possiede anche un 'interfaccia gra- 
fica la quale, vi assicuriamo, va tutta in chip-ram 
e non, purtroppo, negli altri 7 e passa mega, 
magari liberi. 



Vi è quindi il rischio concreto che l’interfaccia 
grafica del programma si sovrapponga ai dati 
della musica. 

La situazione peggiora se si hanno solo 51 2k 
perchè, oltre al pericolo precedente, anche il 
Ripper si potrà sovrapporre ai dati. 


ALTA CHIRURGIA 

Prima di descrivere l’operazione vera e pro- 
pria, documentiamoci come farebbe ogni bravo 
chirurgo. 

Disassemblando un modulo eseguibile pro- 
dotto da Ripper (di cui se ne può vedere uno 
stralcio in figura 1 ) si vede che vi è l’istruzione... 

btst #6, $bfe001 

...la quale, lo diciamo per l’ennesima volta, 
non fa altro che testare lo stato del pulsante tire 
della porta joystick n. 1 il quale corrisponde, 
appunto, al pulsante sinistro del mouse. 

Tutti sappiamo che il bit 7 del medesimo 
indirizzo corrisponde al pulsante fire della porta 
joy n. 2. Basterà sostituire 6 con 7 e la replay 


Non ci 

stancheremo 
mai di 
ripetere che 
è 

indispensabile 
eseguire i 
vari 

esperimenti 
su dischi - 
copia 










procedura 
descritta 
può 
sembrare 
complessa, 
ma basta 
seguire le 
istruzioni 

A ivV'uu .. . 

peravere 


soddisfacenti 


routine cesserà di suonare la musica solo quan- 
do verrà premuto il pulsante tire della porta 2. 

Per eseguire l'operazione ci serve un moni- 
tor, anche se l’optimum sarebbe un assembla- 
tore con funzioni di monitor e dubugger (il Seka 
va benessimo). Prima di iniziare l’operazione 
trascrivete, a parte, la lunghezza (in bytes) esat- 
ta del paziente, cioè del file cui fare l’intervento. 

1 ) Caricate il Seka 

2) Scrivete RI. Alla richiesta FileNameòaìe il 
nome del file esegubile cui volete fare l’opera- 
zione. 

3) Alla richiesta Begin, scrivete $20000. Nota: 
potete scegliere anche un’altra locazione a par- 
tire dalla quale far caricare il file, ma state attenti 
a quello che fate perchè è catti- 
va educazione trasferire 60 / 

1 00 kbytes da disco in ram sen- 
za avvertire Mr Exec\ Per sba- 
glio potreste caricare il vostro 
blocco di dati (abbastanza cic- 
ciottello) in un posto non molto 
indicato: per esempio proprio 
dove è stato caricato il Seka o il 
monitor che state utilizzando. 

In genere, disponendo di 1,5 
Mega di ram, la zona di memoria 
tra $20000 e $70000 è libera, 
ma se volete fare un lavoro da 
persone bene educate, vi consi- 
gliamo di chiedere a Mr. Exec un 
blocco di memoria delle dimen- 
sioni dell’eseguibile che volete caricare. Se vi è 
memoria libera Exec darà l’indirizzo del blocco 
e voi, da scolari diligenti, lo annoterete da qual- 
che parte per poi caricarvi il blocco dati. 

Chi non conosce l’assembler del 68000 deve 
limitarsi a digitare il programmino di queste 
pagine (scritto in assembler, ovviamente), as- 
semblarlo e mandarlo in esecuzione. 

Una volta eseguito il programma (a meno che 
non abbiate commesso errori) avrete in D3 un 
valore. 

Se questo è $00000000 vuol dire che non c’è 
memoria libera a disposizione: comprate quindi 
un’espansione, oppure (nell’ordine) vi buttate 


dalla finestra o restituite la memoria utilizzata a 
Exec. 

Se, invece, il valore è diverso da $00000000, 
allora caricate a partite da tale valore il blocco 
di dati. 

Nel listato, al posto di Francy, digitate la lun- 
ghezza (in Bytes) del blocco dati che volete 
caricare. Come i più avranno capito, il program- 
mino non può essere di alcun aiuto se non lo 
facciamo eseguire utilizzando un debugger: il 
risultato viene fornito in un registro. Tuttavia 
visto che siamo bravi, abbiamo pensato anche 
a quei poveretti che possiedono sólo un assem- 
blatore (o che non lo possiedono e si sono 
assemblati il codice a mano); AskMemCli (co- 
me dice il nome) può essere ese- 
guito anche da CLI poiché scrive 
nella finestra corrente il risultato. 

Ignorate la richiesta successi- 
va, semplicemente tramite la 
pressione del tasto return. 

4) Adesso andate alla locazio- 
ne $20000 + $CB (o quella che 
avete scelto voi + $CB). 

5) Modificate 06 con 07. 

6) Scrivete Wl. . 

7) Alla richiesta Begin scrivete 
$ 20000 , o quello che avete scelto 
voi. 

8) Alla richiesta End scrivete 
$20000 + (lunghezza -1), dove 
lunghezza è la lunghezza del pa- 
ziente. 

9) Uscite dal Seka e provate a vedere se il 
programma funziona. 


COMPATIBILITA* 

Come abbiamo detto prima la routine funzio- 
na a suon di interrupt di livello 6, cioè quello che 
viene generato da uno dei 2 CIA, il quale ha una 
priorità più elevata rispetto a quello generato ad 
ogni vertical-blank che ha priorità 3. 

Tuttavia l’accorgimento non dona di certo la 
vita eterna alla routine di replay, in particolar 


;Ask.mem 
;Sinstassi Seka 
AllocMem = -198 
ExecBase == $4 
Move.l Execbase,a6 
Move.l #Francy,d0 
Move.l #0, di 
Jsr AllocMem(A6) 

Move.l dO, d3 
Rts 

Il miniprogramma in sintassi Seka 








modo è sempre meglio evitare che questa giri 
quando l’Amiga è molto indaffarata, poiché si 
potrebbero causare serii problemi di sincroniz- 
zazione (e Guru conseguenti). 

Evitate, poi, di far funzionare la routine men- 
tre sta lavorando un interprete o un compilatore; 
se proprio volete inserire la musica nei vostri 
giochi scritti in basic allora, tramite compilatore 
apposito, compilateli, dal momento che si do- 
vrebbe avere una convivenza abbastanza pa- 
cifica. Ricordiamo infine che, a causa della 
struttura della replay routine utilizzata, vi è una 
serie di istruzioni eseguite fuori dal ciclo di 
interrupt. Queste ci constringono, nel caso vo- 
gliamo la musica contemporaneamente a un 
altro programma, a far eseguire il brano tramite 
il comando Cli: Run. 

Esempio: supponiamo che il file musica.ga- 
me sia l'eseguibile prodotto dal ripper e che 
Gioco sia l’eseguibile prodotto da un compilato- 
re (basic, c, modula, o quel che vi pare). 

Nella startup-sequence dovrete inserire... 

Run musìca.game Gioco 

E’ da notare che chi ha solo 51 2 kbytes avrà 
serii problemi, derivanti da due fattori. Con 512 
kbytes non è molto consigliabile spendere 100 
kbytes per una sola musica! Inoltre (e qui si 
dovrebbe strappare a morsi le orecchie del 


creatore della routine di replay), quest’ultima 
trasferisce forzamente tutti i dati della musica a 
partire da $30000; vi lasciamo immaginare che 
cosa può succedere se a $30000 c’era qualco- 
s'altro, per esempio un programma o i suoi dati. 

Potevano certo fare a meno di realizzare una 
procedura del genere in un programma destina- 
to ad un pubblico formato, per lo più, da utenti 
poco esperti; quelli più esperti, infatti, non usa- 
no questo ripper, per altro limitato. 


ASKMEMCLI 

Il programma (più lungo) presente in queste 
pagine ( Askmemcli , appunto) non fa altro che 
chiedere a Exec un blocco di memoria tramite 
AllocMem; succesivamente converte l’indirizzo 
di tale blocco in codici Ascii tramite un algoritmo 
di conversione (che non è il massimo dell’effi- 
cenza, però funziona) e infine fornisce nella 
finestra corrente (Cli) tale indirizzo. 

Va detto che se il programma, per qualche 
motivo, non riesce ad aprire la dos.library, non 
verrà stampato niente; inoltre, dato che il pro- 
gramma ovviamente non restituisce la memoria 
presa (se no, che scopo avrebbe?) evitate di 
farlo girare più di una volta di seguito, altrimenti 
vi renderete conto che anche 2 mega di ram 
sono pochini... 



La 

disponibilità 
di grandi 
quantità di 
memoria 
Ram può 
facilitare lo 
svolgimento 
delle 

operazioni 


*>tVvV 



Re^dy.gehhe . Shìmo sfeh 



Orò tacca a noi mostrare quahta 
IVfìL (•••); ••• ehm, quanta valiamo! 



Commodore Computer Club - 71 





i 



ASKHEMCLI 
DONATO DB LUCA 


EXECBASE = $4 
ALLOCNEH = -198 
OPENLIBRARY = -552 
CLOSBLIBRARY = -414 
FRBBMEM = -210 

OUTPUT = -60 

WRITB = -48 


INIZO: 


nove.l EXECBASE, a6 ;Execbase a6 

nove.l #1000, dO ;Quanti bytes? 

;Mettete la lunghezza del f ilei il!!! 
nove.l #0,dl ; D i che tipo? 

dar ALLOCMEM(a6) ;Li prendo, 

nove.l dO, valore ;Salvo il risultato 

olr.l dO ; in dO. Pulisco dO 


lea stringa, al 
lea valore, aO 

nove? #4,d4 


;Dove netto i 
jcodici asci! 
;Da dove prendo 
;i nibble da 
;converire 
;Quanti bytes? 


ConLOOP : 
lea tab,a2 
nove.b (aO),dO 
lsr.b #4,d0 

add.l d0,a2 
nove.b (a2),(a 
lea tab,a2 
nove.b (aO),dO 
and .b #$0f,d0 


; Converto 
;Tabella di conv. 

; Prendo 1 byte 
;Prendo il nibble 
;piu' significativo 
;Rioavo oodioe ASCII 
l)+;Salvo codice ASCII 
;Tabella di conv. 
;Riprendo il byte 
;Prendo il nibble 


meno significativo 
add.l d0,a2 ; Ricavo codice ASCII 

nove.b (a2), (al)+;Salvo codice ASCII 
add.l #l,aO ; Avanzo di un byte 
dbra d4, CONLOOP; Per 4 byte (8 nibble) 

conunica: ;Apro la DOS library, 

lea dos,al ;Testo dO , se nullo 

dar 0PBNLIBRARY(a6) ;vuol dire che ci sono 
;tst.l dO ;probleni con l'apertura 

;beq NONAPROLADOSLIBRARY;della DOS. LIBRARY 
nove.l d0,a5 ;Salvo l'indirizzo in A5 
dar OUTPUT(a5) ;Cerco dove spedire i dati 
nove.l dO,dl ;Dove li spedisco 

nove.l «stringa, d2;Da dove li prendo 
noveq #8,d3 ;Quanti ne prendo 

dsr WRITE(a5) ;Li spedisco(buon viaggio) 

nove.l a5, al ;Chiudo la DOS. LIBRARY 

dsr CLOSBLIBRARY ( a6 > ; 

rte ;Torna dalla nanna , Lesale 

NONAPROLADOSLIBRARY: 

nove.l VALORE, al ;Se non sono riuscito ad 
nove.l #1000, dO ;aprire la dos . library rido 
dsr FREEMEM(A6) ;la nenoria presa ad exeo 
rts ;Pussa a via , Lessi© 

; Ricordatevi di dare TUTTA 


; la nenoria presa! !!!!!!!! 


stringa: 
de . 1 0 
dc.l 0 

valore: JVC 

do . 1 0 
even 
dos : 

dc.b 'dos. library ' ,0 
tab: 


dc.b ‘0',*1','2',*3','4',*5*,*6 , ,*7','8' 
dc.b '9',*a','b','o',d','e','f' 


fi bordo dellè SOè lx>r 

'Aerei, Il 

Cdf>ir^ho Pdol Unser é 

pensoso... 


ftìlre ih Oh jwntfcqgio hnigll 

•loTi di mio 
fr A 


f C» f C- I* I u») U 

^ quello dei b.lòF 

‘ irello A. LO. 



Giudice RE GIS, come stahho 
dhddhdo » miei 



fc.RU.... è incredibile :U SUA 

Squadri gl»A si è esibì td ih 

uh difficilissimo aerali b&r&l = 

• *r,co * beh 8 livelli H - 



72 - Commodore Computer Club 





- y - 


020000 OR.B 
020004 OR.B 
020008 OR.B 
02000C OR.B 
020010 OR.B 
020014 OR.B 
020018 OR.B 
02001C OR.B 
020020 OR.B 
020024 MOVE .L 
02002A LEA 
02002E LEA 
020034 MOVE . L 
020036 ADDt.L 
020038 ADD.L 
02003A MOVE . B 
02003C CMP.L 
02003E BHE 
020040 BSBT 
020048 JMP 
02004A MOVEM.L 
02004E BSR 
020052 MOVEM.L 
020056 RTfc 
020058 BSR 
02005C CLK . B 
020062 MOVE.B 
02008A MOVE.B 
020072 MÒ^B.B 
02007 A MOVE.B 
020082 MOVJS . L 
02008C MOVE . L 
020096 MÓVfc.L 
02009C MOyB.L 
0200A2 CM?r.L 
0200A8 BEQ 
0200AC BRA 
0200B0 BSR 
0200B4 MOVE . L 
0200BE RTS 
0200C0 MOVEM.L 
0200C4 BSR 
0200C8 BTST 
0200D0 BNE 
0200D4 BSR 
0200D8 MOVE.B 
0200DB MOVEM.L 
0200E2 MOVE . W 


#$03F3 ,D0 Ari \ I 

#$0000, DO f VU 1 / 

#$0002, DO I I / 

#$0000, DO V o . // 

#$0001, DO 
#$44A3 , DO 
#$0001, DO 
#$03E9,D0 
#$44 A3, DO 
#$00011266, DO 
$02004A(PC),A2 
$030000. L,AO 
AO, Al 
DO, Al 
DO, A2 

-(A2),-(A1) 

AO, Al 
$02003A 

#$0001 , $BFB001 . L 
(AO) 

DO/D 1/D2/D3/D4/D5/D8/D7/A0/A1/A2/A3/À4/A5/A6 , -( A7 ) 
$020058 

( A7 )+ , DO/D 1/D2/D3/D4/D5/D6/D7/A0/A1/A2/A3/A4/A5/A6 

$0200F0 * 

$BFDEOO . L 
#$0082 , $BFD400 . L 
#$0037 , $BFD500 . L 
#$008 1 , $BFDDOO . L 
#$0011 , $BFDEOO . L 
$000078. L,$0300A2.L 
#$00030076, $000078. L 
$0300A2.L,A0 
$000078. L, Al 
$000078 .L,AO 
$0200B0 
$020096 
$0201AE 

$0300A2.L, $000078. L 

D0/D1/D2/D3/D4/D5/D6/D7/A0/A1/A2/A3/A4/A5/A6, -(A7 ) 
$020100 

#$0008 1 $BFEOO 1 . L 
$020008 
$0200B0 
$BFDDOO.L,DO 

<A7)+,D0/D1/D2/D3/D4/D5/D6/D7/A0/A1/A2/À3/A4/A5/A6 
#$2000 , $DFF09C . L 






■ili * -vr 




■ • ■' * : 


'T v r „.r 

Wv; 

■ . x-*ì 

• ' 


ixx 



Commodore Computer Club - 73 






La gestione 
degli spri te, 
con Amiga, 
richiede la 
loro 
presenza 
sul dischetto 



OBJECT A BORDO! 

Un datamaker su misura per rendere più comodo e trasportabile 

l’uso di Bob e Sprite. nel favoloso Amiga 


di Domenico Pavone 


T ra tutti i comandi implementati da AmigaBa- 
sic, il raggruppamento più consistente è 
quello riservato alla manipolazione dei cosid- 
detti "oggetti mobili”, più comunemente intesi 
come Sprite e Bob. 

Tale abbondanza, pur risentendo dei limiti 
qualitativi dell’interprete basic adottato dalla 
Commodore, di fatto consente una notevole 
facilità nel gestire le potenzialità grafiche di 
Amiga. 

Lo scorrere sullo schermo di navicelle spazia- 
li, proiettili perforanti e artiglieria varia, un tempo 
dominio esclusivo di programmatori provetti, è 


ora alla portata di tutti: qualche istruzione Ob- 
ject., associata alla funzione Collision , ed il 
gioco (anzi, il Game) è fatto. 

Non siamo però qui per approfondire gli 
aspetti teorici del problema, quanto per supplire 
ad una delle caratteristiche meno comode as- 
sociate alla manipolazione di Sprite e Bob. 

Scorrendo il manuale, infatti, si apprende con 
una certa soddisfazione che Amiga, o meglio 
AmigaBasic, non fa distinzione tra Bob e Sprite, 
quanto meno per ciò che riguarda la loro mani- 
polazione. 

La sola istruzione... 


Usr! Ottimo, Primo ... 

Attento è ho h streme, : 
Sài cKe il registro di p 
Controllo teq. - ygfljl 

9»o è Catto dà 
Soli byte soli 
incrociàiotreJ^^^Uil), 
AÉ6IS... 


Non si [3reocco|>i , Signore \ Quindi, sarei in grado di inter 
conosco molto bene là maty>a \ \ v ^> r ® so) CflRRy del suo r~ t 
di memori a dell 1 ftEGIS ... \regisfro - punteggio ...! 

t Lt 



74 - Commodore Computer Club 


f* 





QUALCHE NOTA SUI LISTATI 


T anto il Datamaker che il Demo sono re- 
datti in un basic che non richiede alcun 
approfondimento, se non la semplice con- 
sultazione del manuale per le istruzioni che 
eventualmente non si conoscono, e un'oc- 
chiata ai commenti annessi ai listati. Non 
viene adoperata alcuna libreria di sistema, 
proprio per favorire i meno esperti, che pos- 
sono così cimentarsi nelle modifiche più sva- 
riate. 

Del programma Datamaker vero e proprio, 
potrebbe essere migliorata la cosiddetta "in- 
terfaccia utente”, ovvero semplificato e reso 
di maggiore impatto grafico l’input iniziale. 

Ne conseguirebbe un inevitabile incre- 
mento delle dimensioni del listato, ma, a 
parte la maggiore comodità, costituirebbe un 
ottimo esercizio di programmazione. Per chi 
non ha voglia di pestare troppo sui tasti, la 
routine funziona egregiamente anche così 
com’è. 

Si ricordi solo che, nei listati che dovranno 
gestire l’oggetto mobile, vanno sempre inse- 
rite le istruzioni di caricamento dei dati come 
nelle due righe del listato 3 delimitate dal 
commento " legge dati creati col D maker”. 


Object.Shape x, nome$ 

... renderà^disponibile l’oggetto Nome$, cui 
viene assegnato il numero x, tanto che si tratti 
di uno Sprite quanto di un Bob. 

Preso atto della difficoltà in meno da affron- 
tare, vediamo quali problemi comporta la cosa. 

Ancora sul manuale, viene riferito che alla 
variabile nome$ sono associati gli attributi del- 
l’oggetto: in parole povere, il disegno che lo 
compone, le sue dimensioni ed i suoi colori. 

Tulle queste caratteristiche vengono auto- 
maticamente impostate adoperando il program- 
ma ObjEdit, presente nel disco Extras (directory 
BasicDemos ). In pratica: prima si disegna Pog- 


Owiamente, nel ciclo For... A/exfdi lettura, 
il valore andrà modificato in accordo col nu- 
mero dei Data, rilevabile dalla prima riga del 
file ottenuto con il Datamaker. Quest’ultima 
indicazione, una volta effettuato il Merge, 
può essere eliminata del tutto (è solo una 
Rem, in fondo). 

Prima di concludere, vai la pena notare 
come il programma Datamaker può trasfor- 
mare in Data adoperabili da basic qualunque 
tipo di file, non solamente Bob e Sprite. 

Potrebbe, per esempio, "processare" un 
normale file eseguibile; una volta ottenuto il 
file Ascii, basterebbe poi aggiungervi qualco- 
sa come... 

Open " nomatile " For Output As 1 
For x = 1 To numerodati 
Read a$: a% = Va! (a$) 

PrinW 1, Chr$ (a%) 

Next : dose 1: End 

... per avere un classico "caricatore” basic, 
che ricrea, su disco, il file eseguibile. Unica 
accortezza, considerato l’algoritmo del Data- 
maker, il file da trattare non deve superare i 
32767 byte, limite di capienza per la stringa 
(nel listato 1 : oggetto$) che "ingloba" il file 
prima di trasformarlo in dati Ascii. 


getto con PObjEdit (o qualche Sprite Maker del 
pubblico dominio), poi lo si salva su disco ed 
infine, nel nostro programmino basic, va inserito 
un comando tipo... 

Object.Shape 1, lnput$ (Loffi), 1) 

... dopo aver adeguatamente aperto il relativo 
file (con Open "nomeoggetto" For Input As 1 ). 

E fin qui, tranne le solite "traversie" per chi è 
alle prime armi, nulla di complicato. 

Il programma basic che manipola l’oggetto, 
però, presenta l’inconveniente di dover essere 
sempre associato al file contenente i dati dello 
Sprite/Bob. Il che, volendo trasportare la routine 
su un altro dischetto, si traduce nella necessità 


Una 

procedura 
che ricorda 
da vicino la 
tecnica 
usata con il 
C/64 per il 
disegno 
degli sprite 


Finalmente!) do^o ^ d« 
alta òcrobàìià *.• 



Cèderò iàmo cjoasi 
pimfb : orici manca solo... 


...là cilieqinà Sul diagramma 
ò lorfa ! ns^etUte che do > 
^ — — v alcune POKB ... S 


Leffefro è slu^eCàcehle ! 




£ \ VÉrAVO, (Vi m ol^ 

\Hai ottenuto l’ihVersioneX^. 

\della bhorifc SPRITE -FONDO ! 


Commodore Computer Club - 75 




Sprite e bob 
sono due 
"oggetti" 
grafici simili 
tra loro solo 
in apparenza 


di prestare particolare attenzione al Path (per- 
corso) del file, pena la solita sfilza di "object not 
found". 

TUTTO COMPRESO 

Supponete, per esempio, di voler inviare un 
programma che manipola decine di sprite ad 
una rivista scelta a caso: CCC. 

Il programma sarebbe facilmente testabile 
adoperando il dischetto che lo contiene, ma il 
suo listato non potrebbe mai e ssere pubblicato: 
senza i files che contengono gli sprite,, non 
servirebbe proprio a niente. 

Una soluzione radicale a tutti questi pro- 
blemi, consiste nell’ inserire I dati relativi agli 
oggetti nell’ambito del listato stesso, sotto 
forma di istruzioni Data. 

D’altra parte, un Bob di dimensioni non micro- 
scopiche, magari composto da svariati bitpla- 
nes. può raggiungere facilmente unadimesione 
di migliaia di singoli dati. Improponibile, dunque, 
comporre da sè l'immagine, ammesso che si 
riesca a trovare il bandolo della matassa con- 
sultando il Rom Kernel Manual, non proprio 
semplice per chi è alle prime armi. 

Ma, ed eccoci al dunque, è sempre possi- 
bile ricorrere all’ObjEdlt per creare l’ogget- 
to, salvarlo su disco, e solo successivamen- 
te trasformare In Data II file In questione. 


DA FILE A FILE 

Dopo aver attivato Amigabasic, si copi il lista- 
to, e lo si salvi debitamente su disco. Il program- 
ma è molto semplice da usare, e, entro certi 
limiti, rende il più facile possibile la vita a chi non 
si considera un esperto. Per verificarne e ca- 
pirne in pratica il funzionamento, che come 
ovvio richiede la presenza di un oggetto già 
preesistente, sfrutteremo il file Ball, inserito nel- 
la directory Basicdemos del disco Exfrasfornito 
assieme al computer. Dopo il Run appare un 
primo input, che richiede il nome del disco e 
della eventuale directory ove ricercare il file da 


trattare. E’ importante, nel fornire questo dato, 
attenersi alle comuni regole del Dos, inserendo 
debitamente il simbolo due punti(:) dopo il nome 
del disco o della periferica e, in presènza di una 
(o più) subdirectory, concludendo l’Input con il 
simbolo di barra inclinata(/). 

Nel nostro caso, ad esempio, bisognerà digi- 
tare... •9Q- 

Extras 1.3: BasicDemos/ Off» 

... e Return pet specificare il disco o la direc- 
tory voluta. 

Omettendo la risposta, verrà considerata la 
directory corrente, eventualmente modificata 
direttamente con il comando basic Chdir. 

Chi possiede due drive, può ovviamente ado- 
perare le comuni specifiche Dfl $ ! *DfO:, Ram:, 
eccetera. Viene poi richiesto il nome del file: per 
questa prima verifica, rispondiamo Ball. 

Una ulteriore scelta riguarda il numero di dati 
che costituiranno ogni riga Data, valida più che 
altro a fini estetici, che è stata limitata tra 5 e 1 5, 
valori ottimali anche per differenti risoluzioni di 
schermo. Se si adopera la media risoluzione, 
1 0 andrà più che bene. Infine occórre precisare 
dove dirigere l'output, con le stesse regole del 
Dos viste in precedenza. Anche qùi il parametro 
può essere omesso, nel qual caso^verrà assun- 
ta la directory corrente. n <: 

Si scelga il nome del disco (o della periferica) 
desiderato, che per il nostro primo esperimento 
potrebbe anche essere Ram: (e Return). 

A questo punto, i dati immessi vengono mo- 
strati sullo schermo, per verificare la presenza 
di eventuali errori. Prima di rispondere con S 
(sì) oppure N (no), si controlli attentamente il 
nome dei file di Input e Output, che devono 
comprendere l’intero percorso. 

Il nome del file di Input, se si è seguito quanto 
finora descritto, dovrà risultare esattamente... 

Extras 1.3 : BasicDemos/Ball t' - 

* uj » « , 

...mentre quello di output assumerà il nome 
Ram: Ball. data 

Il suffisso ".data" viene automaticamente ag- 
giunto dal programma al nome del file origine. 

Se tutto è in regola (in caso contrario basterà 
reimmettere correttamente tutti i dati) e si è 


Il giudice fìEOIS esclamò 


Incredule ! Mài Viste niente d» 
Simile ... lotto ciò e j — * ^ 

Resh>ri2èànte !!! 




...e con questo, il fràine è Over... 


Efffcfrìvàmenhe/il tome è Over. 
Primo Grìovedini e là suà squadra 
hanno vinto l\m|x>rtehte cornee* 
h fciohe, (j^r là gìoi&jloro e del 
capitano C.P.U.. Il rivale ft.L.U.j 
invece, t>Do solo sperare in una 
rivincite Estere . avendo quàl - 
curo risponderà l^'tellà 
riteàle domàndà RGR1N ?**... 



76 - Commodore Computer Club 






: BOB O SPRITE? 

I l capitolo 7 del manuale del basic, illustra a 
grandi linee l’argomento objects , spiegan- 
do (succintamente) le differenze esistenti tra 
Sprite e Bob. Ma quando realmente convie- 
ne adoperare uno piuttosto che l’altro? 

Il primo elemento che può determinare la 
scelta,* è certo dovuto alle dimensioni possi- 
bili dell’oggetto. Adoperando uno sprite, co- 
me noto, non si possono superare i sedici 
pixel in orizzontale, il che limita alquanto le 
reali possibilità di questo tipo di oggetto. 

I sedici pixel, si badi, sono da intendersi 
delle stesse dimensioni rilevabili su uno 
schermo 640 x 200 (il classico modo "80 
colonne”), anche se si sta usando una riso- 
luzione minore (320 x 200). 

Per tale motivo gli Sprite vengono usati per 
lo più come puntatori (la freccetta del mouse 
è proprio uno sprite), o proiettili vaganti in 
games d’azione, grazie anche alla loro totale 
indipendenza dallo schermo sottostante. 

Indipendenza dovuta alla presenza, tra i 
circuiti di Amiga, di un hardware espressa- 
mente dedicato alla loro gestione (il chip 
Daphne), motivo della maggiore velocità di 
movimento rispetto ai cosiddetti Bob. 

Questi ultimi, però, sono in effetti gli oggetti 
più utilizzati, vuoi per le maggiori dimensioni 


premuto il tasto N, la routine comincerà a svol- 
gere il suo compito. 

Eventuali inserimenti di dischetto verranno 
segnalati direttamente dal sistema: basterà, in 
questo caso, obbedire ed attendere qualche 
secondo, senza la necessità di clickare nel re- 
quester. Il frutto di tante fatiche (?) sarà un file 
Ascii di nome Bali.data presente, se così si è 
scelto, nella Ram Disk. 

Per verificarlo, si può semplicemente caricar- 
lo tramite l’editor del basic, oppure, dopo aver 
aperto una finestra Shell, impartendo: 


possibili, che per il maggior numero di colori 
implementabili, negli sprite limitati a soli 3. 

La loro gestione è affidata, in Amiga, al 
cosiddetto Blitter ( Bob sta per Blitter OBject) 
che, durante l’animazione, provvede a ridi- 
segnare l'oggetto nella nuova posizione e 
ripristinare il contenuto dello schermo sotto- 
stante. Per tale motivo, nonostante la capa- 
cità del Blitter di trasferire un milione di pixel 
per secondo, la velocità risulta inferiore a 
quella degli sprite. I Bob, in pratica, fanno 
parte dello schermo, nel senso che ne utiliz- 
zano lo stesso "background", anche se non 
in modo evidente. 

I due tipi di oggetti, sono dotati delle stesse 
capacità di collisione, e relativa rilevazione, 
il che, in AmigaBasic, è collegato alla funzio- 
ne Collision , ma con una grave lacuna: non 
esiste una rilevazione della collisione tra un 
oggetto ed un elemento dello schermo sot- 
tostante. 

Sempre in ambiente AmigaBasic, c’è an- 
che da notare una certa discontinuità nel 
movimento degli oggetti quando li si anima, 
dovuto all'uso da parte dell'Interprete di suoi 
particolari interrupt, più "lenti" di quelli super- 
veloci di Amiga. 

Bob o Sprite, dunque? La risposta più 
corretta, è forse la più ovvia: dipende... 


Type Ram : Bali.data. 

In entrambi i casi, se tutto ha funzionato a 
dovere, il file dovrebbe risultare come mostrato 
dal listato 2 di queste pagine. Si noti come, in 
testa al file, sia presente una riga di commento 
contenente l'indicazione del numero totale di 
dati; informazione, questa, basilare per una cor- 
retta assunzione degli stessi in una stringa che 
specifichi l’oggetto. 

I singoli valori Data, inoltre, devono risultare 
ben allineati e disposti ognuno su tre colonne 
(anche l’occhio vuole la sua parte). 


Nel 

dischetto 
Extras di 
Amiga sono 
presenti 
alcuni files 
utili per far 
funzionare 
la procedura 
di queste 
pagine 




Mi ricordo die ora potrete. Assiste 
lre ( in bàSSA risoluzione irono color J 

V e se nza sonoro di sottofondo,.^/ 





.èli' incredibile “CORSO SU 
COME SI ACCENDONO I C0M 
PUTER * del kof . H.SKèrsus” ! 



^rfire il Boot... 



Commodore Computer Club - 77 




Un 

minigioco 
consente di 
verificare la 
corretta 
gestione 
dell’oggetto 
grafico 



toOD. 

kJAyy 



Il file Ball, come specificato in più punti del 
manuale, definisce un oggetto a forma di palli- 
na. Ora, con il nostro Ball. data, è possibile 
ragruppare in un unico listato tanto un program- 
ma che necessita di un Bob- pallina, che i dati 
della pallina stessa. 

Ovviamente, una tantum, sarà necessario 
operare un Merge. 

Vediamo un esempio su come procedere, 
sfruttando il Demo proposto dal terzo listato. 


FUSIONE CALDA 

Si imparisca New al basic, quindi si copi il 
listato 3 e lo si salvi su disco a scanso di 
eventuali Guru. Con il programma ancora pre- 
sente nella finestra List, si digiti nella finestra di 
output... 

Merge "Ram: ball.data N 
... se si era scelta la Ram Disk per contenere 
il file Ascii prodotto dal nostro Data Maker (in 
caso contrario, l'istruzione sarà: 

Merge "Nomedisco: ball. data" 

Il programma Demo è ora completo. 

Lo si salvi su disco nella sua veste definitiva, 
e finalmente lo si lanci: la nostra pallina, i cui 


dati vengono prelevati dalle righe Data, entrerà 
subito in azione. 

Il programma, dato il suo scopo puramente 
dimostrativo, è piuttosto semplice: basta far 
rimbalzare la palla tramite una Yapphetta" il cui 
movimento è gestito dal mouse.* : 1 

Ogni 5 "palleggi", la difficoltà viene incremen- 
tata diminuendo la distanza della 1 racchetta dal 
bordo superiore. Se si fallisce il colpo, il minigio- 
co termina mostrando quanti palleggi sono stati 
effettuati. Per evitarvi la digitazione di lunghe 
serie di Data, l’oggetto Racchetta è ottenuto in 
maniera molto grossolana ma, ora che dispone- 
te di un Data Maker, risulterà semplice dise- 
gnarsene una di tutto rispetto, e, con opportune 
migliorie, il programma potrà assumere una 
vera dignità di Game, anche se,; come ovvio, 
con il solo Basic non si possono certo raggiun- 
gere i livelli di un Arkanoid. 

Non si dimentichi, comunque, che sul numero 
72 della nostra rivista .è stato ; pubblicato un 
programma che trasforma un Brùsh di Deluxe 
Paint (e similari) in un oggetto gestibile da Ami- 
gaBasic. Inutile dire che anche;? i file prodotti 
da quel programma possono essere trasformati 
in Data dal Datamaker di queste pagine, con i 
risultati che si possono immaginare... 



Doto tJto ; il coghofee SKòrsus 
rispecchi òhcheiiò soè 
cifà di disegno 



78 - Commodore Computer Club 





LISTATO' 1 

Trasforma un Bob o uno Sprite creati con l'Object Editor 
Co programmi similari) in un file Ascii di righe Data 


' CARICA OGGETTO E PREPARA OUTPUT SU NUOVO FILE ~s— 

WINDOW 2 f ' Bob & Sprite Datamaker M , ( 30 . 70) - ( 580, 1 15 ) , J.8 
1 abe 11: | 

CLS :PRINJ‘ : PRINT : INPUT" VOLUME/DIRECTORY DI INPUT” ; fi lei $ 

1 abe 12: \ 

CLS : PRINT : PRINT: INPUT "NOME DEL FILE” ; f i 1 e2$ 

Ir f i le2 THEN GOTO label2 
filel$*fi J lel$ + file2$ 
labe 13 : 1 

CLS : PRINT : PRINT : PRINT SPC( 18 ) "DATI PER LINEA (5-15)"; 
INPUT dpi : IF dpi < 5 OR dpi >15 THEN GOTO labei3 
CLS : PRINT: PRINT: INPUT'VOLUME/DIRECTORY DI OUTPUT” ; fi le3$ 
f ì le3$-f i Ie3$+f i le2$+" .data : CLS : PRINT" INPUT FILE •; 

COLOR 3, 2: PRINT SPC ( 4 ) ; f i 1 el S : COLOR 1,0 

PRINT "DATI PER LINEA V;: COLOR 3,2:PRINT dpl:COLOR 1,0 

PRINT-OUTPUT FILE ”;:COLOR 3,2:PRINT SPC(3)file3$ 

COLOR 1,0: PRINT: PRINT SPC ( 24 ) "CORREZIONI (S/N)?"; 
correz : 

a$ * 1NKEY $ : aS = UCASE$ ( a$ ) 

IF a$< >"S” AND a$< >"N ’ THEN correz • 

IF a$ = "S".'THEN CLEAR : GOTO labell 

CLS: PRINT SPRINT :PRINT SPC{ 29) "ATTENDI ... ” 

OPEN filel$ FOR INPUT AS 1 :oggetto$=INPUT$(LOF( 1 ) , 1 > 
CLOSE- 1 : totdat i*LEN ( oggetto$ ) : OPEN file3$ FOR OUTPUT AS 1 
PRINT# 1,$$! * NUMERO DATI = totdati 

* INVIA DATA DELL'OGGETTO AL FILE 

numi inee=lNT( totdati /dpi ) :ultimo=dpl-l 
FOR 1 inee=l TO numlinee*dpl STEP dpi :PRINT# 1 , "DATA 
FOR dati*0 TO ultimo 

a=ASC(MID$ (oggetto$ , 1 inee+dati , 1 ) ) :GOSUB store 
NEXT dati 
NEXT linee;.. 

' — ULTIMA LINEA DATA 

IF numi ine!é* > totdati /dpi THEN 
ultimo*totdati-numl inee'dpl :PRINT# l . "DATA " ; 

FOR dati^ TO ultimo 

a=ASC (MID$(oggetto$ , ( totdat i -ultimo }+dati , 1 ) ) :GOSUB store 
NEXT dati ^ 

END IF - X i X 

' * 3r FINE OPERAZIONI 

CLOSE 1 : CLS; PRINT : PRINT SPC ( 27 ) TUTTO Ok!":PRINT 
PRINT SPC( 10) "Aspetta che il drive si fermi 
PRINT e premi un tasto" 
loop: 

a$=INKEY$ : IF a$ = "" THEN GOTO loop 
WINDOW CLOSE. 2 : END 

’ SUBRÒU.TINE MODIFICA ESTETICA E SCRITTURA DATI 

store: JV 

a$-STR$ (é) 

IF a< 10 THEN PRINT# l.,CHR$(48); 

IF a< 100 THEN PRINT# l.CHR$(4Q); 

PRINT# 1 RIGHT$ ( aS , LEN(a$)-l); 

IF dati=ul timo THEN PRINT# 1,"" ELSE PRINT# 1 ; 
RETURN 






Ih è chiedevi 


Ecco è voi A frrof-Skòrsos 


...soho ih 
cosà fané se SI BRUCIO IL 
FUSIBILE DEL COMPUTER ... 


Commodore Comput^Club - 79 




■x\: h. K v 


* NUMERO DATI =106 

DATA 000 . 000 . 000 , 000 . 000 . 000 , 000 . 000 , OO0 . 000 , 000 , 002 
DATA 000 . 000 . 000 . 021 , 000 , 000 , 000 , 010 , 000 . 024 , 000 , 002 
DATA 000 . 000 . 000 . 000 , 000 , 000 , 000 , 000 , 000 . 000 , 002 , 242 
DATA 000,000,015, 254, 000, 000 ,03i, 255 . 000,000,015. 254 
DATA 000 . 000 , 003 , 248 . 000 , 000 , 000 , 000 , 000 , 000 , 000 , OOU 
DATA 000,000,000.000,000.000,003,254,000,000.015,255 ‘ 

DATA U6, 000, 063, 255,224,000. 127,255,240.000. 127,255 
DATA 240,000. 127 , 255 , 240, 000 , 063 , 255 , 224.000,015, 255 


DATA 12Ó ; 000 . 003 , 254 , 000 , 000 , 000 , 000 , 000 , 000 ' 

1 DEMO DA LANCIARE SOLO DOPO AVER EFFETTUATO 
' IL MERGE CON IL FILE "ball. data" CREATO 
■l CON IL DATAMAKER (listato 1) 

'sasBissssasssissasssssBSSsissssxstssessssaKasss 

SCREEN 2,640.220,2,2 

WINDOW 2. , i 0 . 0 )- ( 630 , 150 ) ,0. 2 

ON BREAK GOSUB fi ne: BREAK ON 

. LEGGE DATI CREATI COL DMAKER 

FOR x=l TO 106 : READ a : pai la$=pai la$+CHR$ la ) :N£XT 
OBJECT . SHAPR 1 , pa 1 la$ assegna pallina a Bod 1 

• CREA BOB "RACCHETTA" 

bar $=MKL$ ( 0 ) +MKL$ ( 0 ) +MKL$ { 2 ) +M*.L$ i 24 .1 +M^L$ i 4 ) 
bar$=bar$+MKI$ ( 24 ) +MKI $ ( 3 ) +MKI $ (.0 ) 

FOR x=l TO 32 : bar $ =bar $+CHR$ ^ 255 ; : NEXT : v=I30 
OBJECT.SHAPE 2 , bar $ : OBJECT . X 2 . 270 : OBJECT . Y 2,v 

• __________ ___________________________________ 

OBJECT. VX 1 , 80: OBJECT. VY 1 , 70 : 'velocita • palla 
OBJECT. ON : OBJECT. START: 'attiva gli oggetti 

' CONTROLLO COLLISIONI 

detect: 

m=MOUSE(0) : OBJECT. X 2 . MOUSE( 1 ) : id=COLLISION ( 0 ) 

IF id=0 THEN detect 

ob j =COLLI S ION ( id ) : vve=OBJECT . VY ( 1 ) : vor=OBJECT . VX ( 1 ) 
IF ob j=-3 THEN PRINT "COLPO FALLITO ! " : GOTO fine 
IF ( obj=-2 AND vor<0 ) OR (obj=-4 AND vor>0) THEN 
OBJECT. VX 1,-vor 
END IF 

IF ( obj=-l . AND vve <0) OR (obj=2- AND vve>0) .THEN. 
OBJECT. VY 1 , -vve : count=count+l :tot=tot+l 
IF count=10 AND v> 30 THEN 
v=v-20 : OBJECT. Y 2,v:count=0 
END IF 
END IF 

OBJECT. START: GOTO detect 

' DISATTIVA TUTTO PRIMA DI CONCLUDERE — 

fine : 

PRINT : PRI NT "PALLEGGI EFFETTUATI = " ; INT( tot/2 ) 

PRINT : PRINT :PRINi "premi un tasto" 

loop: 

a$=INKEY$ : IF a$=*" THEN loop 

OBJECT. OFF: WINDOW CLOSE 2 : SCREEN CLOSE 2: END 


80 * Commodore Computer Club 







DISEGNARE CON DIGIPAINT III 


Non tutti gli utenti di Amiga sono in grado di usare i potenti strumenti offerti dai 
numerosi pacchetti grafici in circolazione; ecco le risposte ai dubbi più frequenti di 

chi disegna abitualmente con Digipaint 3 


A cura di Luigi Callegari 


COME SI CREA UNA SAGOMA 
D I TR ACCIATURA 

P er creare una Custom Brush si deve 
selezionare l'icona di strumenti (To- 
ols) se non è già visualizzata, poi si 
sceglie una qualunque delle sagome ri- 
portate ( triangolo , rettangolo, sfera...) e 
subito dopo l’icona della forbice. Il cur- 
sore assume cosi la sagoma della forbi- 
ce stessa e piandolo sullo schermo si 
può "ritagliare" una porzione di schermo 


facendola diventare la sagoma di trac- 
ciatura lasciata dal cursore premendo il 
pulsante sinistro. Per effettuare il ritaglio 
si deve delimitare l’area interessata pre- 
mendo il pulsante sinistro del mouse e 
muovendolo mantenendolo pigiato, poi 
rilasciandolo si ritaglia la porzione. 

EFFETTO TRASPARENZA 

D igipaint III presentamene schermate 
dimostrative sul disco, un simpatico 


effetto di "trasparenza". Per realizzarlo 
si clicki sul gadget Controls: si vedrà 
apparire il menu omonimo in basso sullo 
schermo (non si tratta di un menu a 
discesa di Intuition, di quelli che compa- 
iono premendo il pulsante destro del 
mouse!). 

All'estrema destra sono presenti i con- 
trolli di trasparenza, con uno slider ver- 
ticale sulla sinistra, che serve per con- 
trollare il punto di trasparenza. Vediamo 
anche un grosso quadrato bianco con 


Commodore Computer Club -81 





quattro pulsanti in cima, che servono per 
indicare la direzione della luce rispetto 
alla faccia dell’ipotetica sfera rappresen- 
tata dal soggetto. 

Infine, sulla destra, troviamo uno sii- 
der verticale che regola la trasparenza, 
come indicano anche le figure poste a 
lato. Si clicki sul secondo bottone da 
sinistra tra quelli posti al di sopra del 
quadrato bianco (Point Hotspot). In que- 
sto modo compare un quadratino bianco 
sullo sfondo ombreggiato, rappresen- 
tante il punto di luce per il controllo della 
trasparenza, dove cioè inizia il centro 
della trasparenza. 

Si trascini lo slider Edge Transparen- 
cy in basso per rendere trasparente lo 


spigolo della sagoma, come si desidera. 
Infine si sposti il puntatore nel punto 
desiderato per lasciare la "brusii" attuale 
in modo trasparente alla pressione del 
pulsante sinistro del mouse. 

EFFETTI... SFEROIDALI 

U no degli effetti più stupefacenti offer- 
toi dal pacchetto è certamente quel- 
lo che permette di scrivere un testo qua- 
lunque su di una sfera, come è anche 
possibile vedere nel dimostrativo. 

Digipaint III consente di usare il testo 
come una brush, quindi di illuminarla, 
ombreggiarla ed "appiccicarla" su figure 
solide. 


Innanzitutto si deve produrre, il testo 
da rendere, come se fosse una sagoma 
di tracciatura entrando nel menu Texte 
clickando sull'apposito bottone di sele- 
zione. Quindi si clicka sul gadget Stringa 
e si immette il testo. 

Se si desidera cambiare la fonte di 
caratteri, si deve clickare sul primo bot- 
tone, quello con la scritta Fonts, per 
accedere alle fonti memorizzate nella 
directory associata al device Fonts: (so- 
litamente la directory Fonts del disco di 
sistema, ovvero quello usato per avviare 
il computer alla richiesta del Wor- 
kbench). 

Dopo avere terminato la digitazione, 
premendo Return o Enter, il testo viene 
reso secondo i colori ed il modo di trac- 
ciatura attuale (Coiorize, Range, Nor- 
ma/...,} selezionati dai menu Intuition col- 
legati al menu. Per ottenere la tracciatu- 
ra in grassetto , corsivo o sottolineato , 
bisogna clickare su di uno dei tre gadget 
con una [A] scritta nel corrispondente 
stile, posti accanto al gadget di stringa. 

In seguito si deve scegliere dal menu 
(pressione del pulsante destro del mou- 
se) Brush la opzione Swap / Copy This 
Brush. 

Tale azione inserisce automat- 
icamente la brush attuale, rappresenta- 
ta dalla stringa di testo, in un buffer 
interno ed abilita la successiva opzione 
che dobbiamo usare. 

Dal menu Mode si scelga TxMap, che 
sta per "texture mapping". In questo mo- 
do la stringa di testo viene usata come 
mappa per riempire le sagome. 


DIGIPAINT III 

I l pacchetto Digipaint III della NewTek è attualmente, 
insieme a Photon Paint II, il programma "di punta" per 
quanto riguarda la grafica HAM. Scritto interamente in lin- 
guaggio Assembler per garantire la massima velocità ope- 
rativa, è in grado di lavorare sia in bassa risoluzione 
normale (320 x 256), sia in bassa risoluzione interlacciata 
(320x512). 

In effetti si attende l'annunzio della commercializzazione 
anche in Italia della versione che supporta il cosiddetto 
modo Dynamic Hires, in grado di presentare 4096 colori in 
alta risoluzione (640 linee orizzontali) usando una partico- 
lare tecnica hardware e software, che cambia in pratica la 
palette di colori per ogni nuova linea di scansione. 

Tale sistema è già supportato dal digitalizzatore hardwa- 
re Digiviewlll della Newtek, che può generare direttamente 


immagini HAM in alta risoluzione partendo da telecamere 
in bianco e nero od a colori. 

Digipaint III consente di avere un’area di tracciatura 
virtuale di 1024 x 1024 pixel, memoria Chip permettendo, 
con scorrimento continuo, sebbene con i nuovi modelli di 
Amiga dotati di 1 Megabyte di Chip Ram la massima 
dimensione di schermo sia effettivamente di 960 x 960 
pixel. Vogliamo qui illustrare alcune semplici procedure di 
utilizzo delle entusiasmanti caratteristiche del pacchetto, 
che speriamo servano come soluzioni a problemi pratici dei 
suoi utenti, incapaci di leggere il manuale in lingua inglese 
o senza voglia di introdursi in strani meandri per compren- 
dere anche le nozioni basilari. 

Ricordiamo, innanzitutto, che Digipaint III lavora esclusi- 
vamente con files grafici in formato IFF e che per fare 
comparire il menu con gadget e requester vari si deve 
premere il tasto di Help. 


82 - Commodore Computer Club 







rente, si deve attivare il quadrante della 
tavolozza cromatica, poi clickare sul 
bottone nella linea inferiore riportante 
Pick. 

Portando il mouse su di un qualun- 
que punto dello schermo, anche su di 
una porzione ingrandita con l’opzione 
di ingrandimento {bottone con lente da 
filatelico) e clickando col pulsante sini- 
stro per un istante, il colore viene letto 
ed usato come colore attuale. 

Viene infatti presentato anche sopra 
i tre slider cromatici verticali RGB nel 
quadrante. 

UNIONI 

L ’opzione RubThru del menu Mode 
serve, essenzialmente, a unire 
creativamente due immagini separate 
in modo selettivo. 

Si carichi, ad esempio, l’immagine 
Fashion dalla directory Images dal di- 





sco di Digipaint III, poi si scelga Copy 
This Picture dal menu Picture/Swap per 
ricopiare la schermata nel buffer interno. 

Si scelga il colore bianco dalla tavo- 
lozza a sedici tinte (quello orizzontale 
sopra i bottoni, sempre visualizzato) e si 
scega Colorize dal menu Mode: pre- 
mendo il tasto [w] si renderà tutto lo 
schermo in bianco e nero. 

Poi si clicki sul gadget Controls per 
lavorare sui controlli di trasparenza. 

Si attivi il punto di fuoco puntiforme 
(secondo gadget sopra il quadrato 
bianco) per fare comparire la sfera ros- 
sa col quadratino bianco, poi si sposti 
lo slider Edge Transparency (l’ultimo 
slider verticale a destra) nel punto infe- 
riore della sua corsa. 

Si scelga poi RubThru dal menu Mo- 


mouse al di sopra di uno dei colori rosa 
nei quadrati con le sfumature di colori 
posti sulla destra dello schermo. 

Quindi si clicki il pulsante sinistro e lo 
si mantenga premuto muovendo il pun- 
tatore sulle sfumature. 

Una volta scelto il colore appropriato 
si ritorni al quadrante di Tools, si clicki 
su Fili e, poi, sulla sagoma di tracciatura 
continua a mano libera (la prima a sini- 
stra quando il Fili è stato selezionato e 
compare verde su nero). Delimitando la 
faccia della lady, e muovendo il mouse 
col pulsante sinistro premuto, si riempie 
di colore il disegno in modo concorde 
con la scala di grigi originale. 


Per avere un esempio si rientri nel 
quadrante Tools, si scelga Fili e poi la 
sagoma rotonda. Clickando in un punto 
dello schermo per tracciare la circonfe- 
renza (mantenendo premuto il tasto si- 
nistro del mouse lo si sposti sino a otte- 
nere le dimensioni volute, poi si rilasci il 
tasto sinistro) comparirà la parola brush 
come stampata sulla superficie della 
sfera. 

Si noti che può essere necessario ri- 
mappare la maschera di colori della 
brush scegliendo Palette / Remap per 
fare comparire il risultato voluto. 


C on Digipaint III è possibile ottenere 
la colorazione di una immagine in 
una scala di grigi. 

Si carichi una immagine a 
scala di grigi, come ad esem- , 
pio il file Lady della directory B |* À 
Images del primo disco di Di- 

Si scelga quindi l’opzione H B 
Colorize dal menu Mode I B 
usando il pulsante destro del 
mouse. Si vada poi nel qua- I B 
drante Colors (clickando sul ; 
bottone con il disegno di una i' : 
tavolozza da pittore) e si agi- ; 
scaper ottenere (ad esempio) KSJ 
una gamma di sfumature ro- RjS 
sa: si porti il puntatore del hrfd-. 


er leggere un colore dallo schermo 
allo scopo di usarlo come colore cor- 


In questo modo, premendo ancora 
[w], si vedrà ricolorare tut- 

Ì to lo schermo, usando pe- 
rò lo schermo sottostante 
come riferimento ed otte- 
nendo così un effetto crea- 
tivo in base al modo sele- 
zionato attualmente (si 
provi ad esempio a sele- 
zionare Range prima di da- 
re il "w"). Con questa tec- 
nica si possono ottenere 
dei "ritagli" o dei fotogram- 
mi usando Undo o Rub- 
Thru sullo schermo sotto- 
stante. 


Commodore Computer Club - 83 








I DISEGNI DI FRA’ MARTINO 

La procedura di Algomartin, implementata in Amigabasic, è facile da digitare ed in 

grado di generare decine di fantastiche figure astratte 

Salvatore Recupero 


I l programma si basa sull’algoritmo del 
matematico inglese Martin; esso ripro- 
duce, attraverso la visualizzazione di 
punti, figure molto belle a vedersi, con 
effetti grafici imprevedibili. Ma esaminia- 
mo il programma che all’inizio, dopo la 
presentazione, vi chiederà di inserire al- 
cuni valori: 

Se volete il grafico a colori (scelti, a 
caso tra otto, mediante la funzione Rnd) 
oppure con un solo colore (il bianco) 
dovrete digitare, rispettivamente, 0 op- 
pure 7. 

Subito dopo sarà la volta dei sei para- 
metri A, B, C, I, AX, AYche ora descri- 
viamo in dettaglio. 

A, B, C: sono le variabili che ogni volta 
determineranno la figura. Si consiglia di 
introdurre valori a caso, preferendo nu- 
meri piccoli; oppure servirsi dei parame- 
tri consigliati dallo stesso programma. 

I; è parametro che serve a definire la 
grandezza totale della figura sullo scher- 
mo; è in relazione con i tre parametri visti 
prima e può capitare che un ingrandi- 
mento eccessivo porti -la figura fuori 
schermo; al contrario, un ingrandimento 
modesto può impedire di far vedere al 
meglio il disegno ottenuto. 


Comunque, con un po’ di esperienza, 
arriverete a scegliere l'ingrandimento 
ideale. La gamma dei valori può variare 
da 1 all’infinito (o quasi...). Ovviamente 
più è grande il valore digitato, più grande 
sarà la figura sullo schermo. 

AX, AY: sono le coordinate sulle quali 
sarà stampata la figura. AX si riferisce 
all’asse orizzontale, AY a quello vertica- 
le. Fate attenzione a non esagerare con 
le coordinate, altrimenti la figura genera- 
ta potrebbe andare fuori schermo o non 
comparire affatto. E’ chiaro che con certi 
dati bisognerà effettuare dei tentativi per 
trovare le coordinate migliori; vi consi- 
gliamo, in linea di massima, di adottare 
le coordinate al centro dello schermo 
280 - 285 per l’asse X, 80 - 90 per l’asse 
Y. 

Non appena avrete inserito tutti i dati 
(separati uno dall'altro con la virgola) e 
dopo aver premuto Return, il programma 
inizierà a visualizzare la figura. 

Durante il procedimento sarà attivo il 
menu Toolsc on il quale potrete disegna- 
re una nuova figura (cambiando i para- 
metri) oppure terminare il programma; 
l’algoritmo, infatti, procede all'infinito e 
non è prevista una fine. 


La formula su cui è basata la proce- 
dura si trova alla linea Formula: mentre 
la linea Stampa: si incarica di disegnare 
i singoli punti. 

Ovviamente l’algoritmo, per la sua 
semplicità, può essere variato in molti 
modi, secondo la vostra fantasia ed 
esperienza. 

A parte la sezione del colore e della 
risoluzione, modificabile facilmente 
cambiando i valori di Screen , sono pos- 
sibili altre modifiche come per esempio 
la funzione matematica della formula, in 
partenza Sqr , che può essere convertita 
in Sin, Cose d altre; oppure l’operazione 
contenuta nella variabile Y1 (cioè A - X) 
sempre alla linea Formula : potrebbe es- 
sere cambiata in B - X. 

Si possono anche disegnare quadrati 
invece di punti (basta tramutare le Pset 
del programma con LINE ), oppure cir- 
conferenze con il comando Circle. 

E’ bene precisare che occorrono alcu- 
ni minuti prima che le figure sullo scher- 
mo comincino ad assumere aspetti ve- 
ramente interessanti; ma avendo a di- 
sposizione un compilatore basic (o 
eventualmente implementandolo in C) i 
risultati saranno eccellenti. 


84 - Commodore Computer Club 




REM AlgoMartin 2.0 15/8/89 by Ree Sai 


crzmn: REM crea il menu tools 
MENU 5, 0 , 1, “Tools" 

MENU 5, 1, 1, "Nuovi dati" 

MENU 5, 2, 1, “Fine" 

ON MENU GOSUB scelta 

MENU ON 

parametri: REM raccolta di alcuni dati 
CLS 

COLOR 3, 0: CALL centro (2, "AlgoMartin") : suono: LINE (252, 16) - (338, 16) 
LINE (250, 100) - (600, 180) , 3, b 


LOCATE 

14, 

44 : 

COLOR 

1/ o 

: PRINT "Parametri consigliati" 

LOCATE 

16, 

33: 

COLOR 

3, 0 

: PRINT -1) 5, 0.8, 1.6, 10, 200 

LOCATE 

17, 

33: 

PRINT 

“2) 

0.3, -3, 2.7, 10, 220, 80" 

LOCATE 

18, 

33: 

PRINT 

"3) 

-0.7, -1, 4, 10, 250, 80" 

LOCATE 

19, 

33: 

PRINT 

“4) 

8, -4, -0.48, 10, 250, 80" 

LOCATE 

20, 

33: 

PRINT 

“5) 

1.1112, -2.2, 0.6, 15, 285, 8:>" 

LOCATE 

21, 

33: 

PRINT 

“6) 

3.3331, -1.1, 0.3, 14, 285, 85“ 

LOCATE 

22, 

33: 

PRINT 

"7) 

4, -1, -0.7, 13, 285, 85" 


main: REM inizializ. dati e programma 
x =» 0: y * 0 

LOCATE 4, 1: COLOR 1, 0: INPUT"Graf ico ad 1 colore od a 8 (0/7) " ;ccl% 

IF col % <> 0 AND col % 07 GOTO main 
FOR scr * 1 TO 57 

SCROLL (0, 24) - (280, 32) , -5, 0 
NEXT scr 

LOCATE 4, 8: INPUT"A, B, C, I, AX, AY ";a, b, c, i, ax, ay 
FOR scr = 1 TO 90 

SCROLL (0, 24) - (480, 32) , 5, 0 
NEXT scr 
scrolling (-15) 

CLS: SCREEN 1, 640, 256, 3, 2 
WINDOW 2, "AlgoMartin", , 0, 1 

formula: REM formula algoritmo 
xl = y-SGN (x) *SQR (ABS (b*x-c) ) 
yl * a-x: cl * 1 + RND*col% 

stampa: REM stampa ogni punto grafico 
PSET ( x* i + ax, y*i + ay) , INT (cl) 

PSET ( x 1 * i + ax, yl*i + ay) , INT (cl) 
x = xl : y » yl 
GOTO formula 

fine : 

END 

REM procedure 

SUB centro (r%, mes$) STATIC 
col % = 76/1 

LOCATE r%, (col%-LEN (mes$) ) /2: PRINT mes$ 

END SUB: REM stampa al centro una stringa 

SUB suono STATIC 

SOUND 292, 2, 100, 1: SOUND 523.28, 2, 100, 2: SOUND 659.28, 2, 100, 3 
END SUB: REM emette un suono 

SUB scrolling (ab%) STATIC 
FOR i = 1 TO 15 

SCROLL (0, 1) - (615, 200) , 0, ab% 

NEXT i 

END SUB: REM effettua lo SCROLL dello schermo 
SUB pausa (p%) STATIC 
FOR i = 1 TO p%: NEXT i 

END SUB: REM crea una pausa secondo il valore inserito 


scelta: REM scelta da menu 

IF MENU (1) =1 THEN WINDOW CLOSE 2: 

IF MENU (1) * 2 THEN WINDOW CLOSE 2: 


SCREEN CLOSE 1: RETURN parametri 
SCREEN CLOSE 1: RETURN fino 


Commodore Computer Club - 85 


I COMPRESSORI DI AMIGA 

Operando con i modem, o volendo risparmiar dischetti, capita di dover realizzare la 
"quadratura del cerchio", cioè ridurre il numero di byte da elaborare o archiviare 


( cosiddetti compressoti sono program- 
mi in grado di ridurre le dimensioni 
occupate da files di dati, siano essi files 
Asdi, programmi vari (scritti in qualsiasi 
linguaggio) od interi dischetti, allo scopo 
di far occupare lo spazio minore possibi- 
li, pur mantenendo intatti i dati stessi. 

I òomplementari decompressori, che 
quasi sempre sono incorporati nello 
stesso programma compressore, effet- 
tuano l’operazione opposta, riportando i 
dati del file o del disco al formato origi- 
nale. 

Come qualcuno avrà intuito, questo 
tipo di programmi può essere usato van- 
taggiosamente, in particolare, quando si 
devono inviare dati via Modem, in quan- 
to cohsentono di ridurre il tempo del 
collegamento a beneficio delle proprie 
tasche. 

' Dal momento che all’estero le BBS 
(òioè le banche dati telefoniche total- 
mente automatizzate) sono sviluppate 
da molto tempo, esistono parecchi pro- 
grammi in circolazione, studiati apposi- 


di Luigi Callegari 

tamente per svolgere il meglio possibile 
questo compito. Caratteristica comune 
di (quasi) tutti i compressori è l’essere di 
pubblico dominio, infatti sono rintraccia- 
bili facilmente sia nelle BBS, sia nelle 
varie collezioni disponibili gratuitamente 
(Flsh Disk, ad esempio). 

I programmi di compressione più diffu- 
si, tra quelli studiati appositamente per 
gli utenti di modem possessori di Amiga, 
sono Are e Zoo. Il primo è forse il più 
vecchio e glorioso programma del suo 
genere, esistente in versioni apposite 
per (praticamente) qualunque computer 
e sistema operativo (MS/DOS, Amiga- 
DOS, UNIX, Macintosh...), mentre il se- 
condo rappresenta una evoluzione di 
Are, col quale è compatibile a livello di 
comandi ("verso il basso"), pur essendo 
più efficiente e con un maggior numero 
di opzioni di lavoro. 

Attualmente un nostro connazionale, 
Paolo Zibetti, ha realizzato una nuova 
versione di compressore inserita nel 
pubblico dominio internazionale (Fish 


Disk 293) che ha riscosso un immediato 
successo grazie alle sue eccezionali 
prestazioni e caratteristiche, chiamato 
LHarc. Anch'esso è compatibile verso il 
basso con Are, pur possedendo un algo- 
ritmo di compressione molto più efficien- 
te e veloce. 

Altro programma usato frequente- 
mente nelle BBS internazionali è il famo- 
so Warp, che funziona trasformando i 
dati contenuti in un disco intero, o entro 
un dato numero di settori, in un file bina- 
rio tranquillamente inviabile via Modem. 
Ciò consente di inviare (o archiviare) 
dischi in formati non standard (anche 
protetti, raramente), che possono poi es- 
sere riscritti usando Warp stesso oppure 
il programma separato Unwarp, studia- 
to appositamente per funzionare più ve- 
locemente. Ovviamente anche Warp 
esegue una compressione dei dati letti. 

Infine citiamo Power Packer di Meo 
Francois, software di pubblico dominio 
rintracciabile anche in Amigazzetta, che 
è in grado di comprimere files eseguibili 


COMANDI DI ZOO SUPPLEMENTARI 
A QUELLI DI ARC 


| FORMAI 

DESCRIZIONE ] FORMA 2 

| -add 

Aggiunge files in archivio 

aP: ! 

-extract 

Estrae files dall’archivio 


| -move 

Sposta files dall'archivio 

aMP: 

-test 

Verifica integrità archivio 

xNd 

-print 

Estrae files dall’output 

xp ! 

j-delete 

Cancella files dall’archivio 

° p 

! -tist 

Elenca i contenuti degli archivi 

ve 1 

-□pdate 

Aggiunge files nuovi 

E 

aunP: 

j -freshen 

Aggiorna con nuovi files 

auP: I 

-comment 

Aggiunge commenti ai files 

c 


I COMANDI DI ARC 


a = Aggiunge files all’archivio 

b = Conserva una copia di sicurezza dell’archivio 

c * Converte un elemento nel nuovo metodo di packing 

d = Cancella files dall’archivio 

e = Estrae files dall’archivio 

I = Elenca i files in archivio 

m = Sposta files all'archivio 

n = Sopprime le note ed i commenti 

p = Copia files dall’archivio a stdout 

r = Esegue files nell’archivio 

t » Verifica integrità dell’archivio 

u = Aggiunge files all’archivio 

v = Elenca verbosamente i files in archivio 

w = Sopprime i messaggi di avvertimento 

x = Estrae files dall’archivio 

N.B: alcuni comandi sono ottenibili con due lettere diverse 


86 - Commodore Computer Club 





AMisraSheJl 


fc S Lh»c < ^- :L 5 a i?8 Oct 27 1989 by Paolo Zibetti (FidoHet 2:331/181.6) 
(LZHUF conpression code by Haruyasu YOSHIZAXI) 

Usage: lharc Kswitches)! <Comand> <Archive> Kdest path>l Kfile patterns)] 


sumary of comands: 

e,x extract files fro» archi ve 
l,v show archi ves contents 

print extrac ted files to screen 
test archive integri ty 
add files to archi ves 
nove files into archives 
delete files fron archives 
update files in archives 
freshen files in archives 


? 

a 

n 

d 

u 

f 


P 

n 

x 

n 

w 

P 

a 

u 

r 


sunnary of switches: 

pause after loading 
no nessages for «nieries 
consider extendea file nanes 
no progress indicator 
set working directory 
set grioritv 
consider file attributes 
convert file nanes to «ppercase 
recursively col lect files 


|<»est path> nust end with or V* 
l.SYS: > 

i.sys:) 

l.SYS:> 

i.sys:> 

i.sys:> 


e di dati con una interfaccia utente molto 
sofisticata. Non è particolarmente utile a 
chi deve inviare dati via modem, in quan- 
to non può raggruppare in un solo file 
vari files come Are, Zoo e LHarc, ma è 
indispensabile a chi deve ridurre le di- 
mensioni di files eseguibili. Inoltre è un 
programma sofisticatissimo dal punto di 
vista dell'Interfaccia utente, consenten- 
do addirittura l'elaborazione differita 
(batch) dei files da comprimere (lavora 
anche in assenza dell'operatore, memo- 
rizzando sequenze di eventi mouse/ta- 
stiera e ripetendoli da sè). 

E’ veramente utile anche per decom- 
primere files trattati con programmi di 
crunching diffusi tra gli hacker europei. 


COME FUNZIONANO 

Are, Zoo e LHarc sono programmi che 
leggono un file per volta, lo comprimono 
e lo inseriscono in un file detto di archi- 
viazione, solitamente col nome termina- 
to da un suffisso (.are, .zoo e .Izh rispet- 


tivamente). Questo file conserva sia i 
dati compressi veri e propri, sia informa- 
zioni estese su di essi (nome, data di 
inserimento, tecnica di compressione 
usata ed altro), rileggibili tramite apposi- 
to comando (I). Non si tratta ovviamente 
di un file eseguibile, ma di una sequenza 
di bytes comprensibili soltanto ai pro- 
grammi di compressione che li ha gene- 
rati. 

I programmi sono sviluppati in versioni 
per vari sistemi operativi. Ciò significa 
che se qualcuno usa, ad esempio. Zoo 
sul proprio Macintosh o IBM per inserire 
in una BBS una serie di files, un altro 
utente può usare un Amiga od un Apple 
per riportare tali files alle dimensioni ori- 
ginali senza problemi di alcun tipo, una 
volta letto via modem tale file. 

Si badi che, in nome di questa unifor- 
mità, vi sono delle caratteristiche di fun- 
zionamento particolari, che potrebbero 
risultare inusitate a chi è ormai abituato 
ad usare AmigaDOS. 

Ad esempio, i ben noti caratteri jolly, 
cioè cancellerò (#), punto di domanda 


(?), ed asterisco O, sono presi in consi- 
derazione anche da Ms/Dos e da Unix. 
Inoltre i nomi dei files, spesso, vengono 
tagliati ai primi dieci o quindici caratteri e 
se ne considera importante il suffisso. 

Ad esempio, per default Are assume 
che il file di archiviazione sul quale lavo- 
rare termini nel nominativo con la stringa 
".are". 

Ricordiamo che il suffisso di nome di 
un file è tipicamente una sequenza di tre 
caratteri che segue il punto (.), eredità di 
Ms/dos principalmente. 

Un’ultima precisazione riguarda il fatto 
che i compressori memorizzano un file 
per nome, quindi non è lecito memoriz- 
zare due volte un file con lo stesso nome. 

Ad esempio, se in due directory sepa- 
rate abbiamo due files differenti chiamati 
ambedue Cattorelli, la prima volta il pro- 
gramma lo archivierà normalmente, ma 
al momento della compressione dei files 
nella seconda directory segnalerà File 
already present e non lo inserirà. Ciò 
potrebbe comportare la perdita di prezio- 
si files, quindi si faccia attenzione e non 


Commodore Computer Club - 87 



Workbench Screen 


AmgaShel 1 


If yoa Hke thìs prò gran, and find it of use, then your contribution «Il 
be appreciated. You nay not use this produci in a connercial environnent 
or a goverrmental organization «ithout payìng a license fee of $35. 

If you fai! to abide by thè terra of this license, then your conscience 
«11 haunt you for thè rest of your life. 

Usage: ARC {aMufdxerplvtc>[bsimlIg<password>l <archive> Kfilenane) . . . 
Ubere: a = add files to archi ve 
n = nove files to archive 
u = update files in archive 
f : freshen files in archive 
•\ d : delete files froH archive 
x,e = extract files fron archive 
p = copy files fron archive to standard output 
1 = lisi files in archive 

v = verbose listing of files in archive 
t : test archive integri ty 
c : convert entry to nev packing nethod 

b z retain backup copy of archive 
s r suppress con>ression (store only) 
v r suppress varning nessages 
n - suppress notes and connents 
8 = Encrypt/decrypt archive entry 

^WS*)* 6 ** 1 * to thè progran docunentation for cou>lete instructions. 


:116 


si comprimano troppi files disparati in 
uno stesso file se non si è ben sicuri che 
siano dotati tutti di nomi differenti. 


ARC 

Il capostipite dei compressori d'archivi 
è stato diffuso originariamente sul Flsh 
Disk 70 in versione 0.23, completamen- 
te compatibile con la famosa versione 
5.00 di MS/DOS. 

Ricordando che digitando il suo nome 
senza parametri da Shell, e battendo 
Return, si ottiene l'elenco dei comandi 
disponibili, la sua sintassi di chiamata è: 

ARC <comando> <nomearc> [<argomento>] 

in cui con <comando> indichiamo una 
lettera che esprime il comando da ese- 
guire (vedi Figura 1), maiuscola o minu- 
scola. Con <arc> si indica il nome del file 
di archiviazione, anche senza estensioni 
(caratteri dopo il punto nel nome), nel 
quale caso si assume per default ”.ard\ 

Ad esempio, con la linea... 

Arca Ormellese *. * 

...si aggiungono al file di archivio Or- 
mellese. are tutti i files presenti nella di- 
rectory corrente. I simboli di asterisco 
indicano "qualunque stringa", secondo 


le convenzioni dei "caratteri jolly" di 
MS/DOS. Analogamente il comando... 

ARC m RAM: Gente dfl : pii/ *.c 

...muove nel file di archivio Gen- 
te. ARC presente nel Ram Disk tutti i files 
della directory pii presente nel dischetto 
inserito nel primo drive esterno (o nel 
secondo interno di un A2000) che abbia- 
no il nome terminante col suffisso ".c". 
Con "muovere" o "spostare", termini ru- 
bati all’inglese nel gergo informatico ita- 
liano, si intende che i files accettabili (in 
questo caso quelli con i nomi terminanti 
per .c) vengono compressi, inseriti nel 
file di archivio e cancellati. 

Invece con "estrarre un file dall’archi- 
vio", ovvero col comando "x", si intende 
il leggerlo dal file di archiviazione do- 
ve è stato compresso e memorizzato, 
e riportarlo al formato originale. Ad 
esempio... 

ARC x dfO: testi ’.doc 

...scandisce il file di archiviazione 
Testi.arc, assunto presente nel disco 
inserito nel drive interno, ricavandone 
tutti i files con nomi terminanti in 
".doc". Si noti che ciò presuppone im- 
plicitamente che tutti i files vengono 
memorizzati nell’archivio col nome 
originale, come difatti accade. 


Per leggere i nomi e le 
statistiche di tutti i files 
inseriti in un archivio, si 
usa qualcosa come... 

ARC I archi 
ARC v sys: mede 


Il primo genera un 
elenco normale dei files 
compressi nell’archivio 
"archi.ARC" nella direc- 
tory corrente; il secondo 
un elenco molto crco- 
stanziato dei files nell'ar- 
chivio "mede. ARC". In 
quest’ultimo vengono 
elencati ordinatamente: 
nome del file, lunghezza 
in bytes originale, tipo di 
compressione usata, ri- 
duzione percentuale, di- 
mensione in bytes nel- 
l’archivio, data di inseri- 
mento, ora di inserimen- 
to, codice di checksum. 

La terza colonna riporterà Squeezed 
oppure Crunched : Il primo indica che il 
file è stato compresso con l'algoritmo di 
Huffman , il secondo con quello di Lem- 
pel-Zev. La scelta del tipo di compressio- 
ne viene effettuata autonomamente da 
ARC al momento dell’inserimento del file 
in archivio, in modo da ottenere la mas- 
sima riduzione possibile; in genere Lem- 
pel Zev funziona meglio con i files corti. 


ZOO 

Zoo è una evoluzione di Are scritta per 
Amiga da Rahul Desi e rintracciabile, 
oltre che in numerose BBS, anche sul 
Fish Disk numero 164. E’ scritto in C ed 


GLI SWITCHES DI LHARC: 

-p = Pausa dopo il caricamento 
-m = Nessun messaggio di richiesta 
-x = Usa nomi di file con estensione 
-n = Disabilita messaggi di lavoro 
-w = Indica la directory di lavoro 
-P = Fissa la priorità 
-a = Considera gli attributi di file 
-u = Converte nomi di file in maiuscolo 
-r = Raggruppa files ricorsivamente 


88 - Commodore Computer Club 



esistono da tempo versioni per Apple, 
MS/DOS, UNIX ed altri sistemi operativi. 

Zoo può memorizzare ed estrarre se- 
lettivamente files dagli archivi come Are, 
ma usa un algoritmo di Lempel-Ziv mo- 
dificato, che consente una riduzione dal 
20% all’80% del file sorgente. I dati pos- 
sono essere recuperati anche da archivi 
danneggiati e si può sottoporre a com- 
pressione il file di archivio per recupera- 
re lo spazio liberato da files archiviati 
eliminati. 

Essendo compatibile con Are, tutti gli 
esempi ed i comandi visti per quest'ulti- 
mo valgono anche per Zoo. Il formato 


generico di Zoo risulta decisamente 
complesso da imparare a memoria: 

Zoo {acfDeghILPTuUvVx} [aAcCdEf- 
glmMnNoOpPqSul :/.<§>+-=] archivio [fi- 
le] 

Zoo -comando archivio [file]... 

Digitando Zoo h [+ return] si ottiene un 
elenco completo delle funzioni disponi- 
bili. I caratteri racchiusi tra parentesi 
graffe sono comandi, quelli racchiusi tra 
parentesi quadre sono modificatori dei 
comandi. Ovviamente non tutti i modifi- 
catori funzionano con tutti i comandi. 


Con "-comando" si intende non una sin- 
gola lettera ma una stringa tra quelle 
riportate in Figura 2, adatte all’uso da 
parte dei non esperti, che quindi vengo- 
no chiamati Novice Command, in con- 
trapposizione agli Expert Commands , 
che sono in pratica le stesse funzioni, 
ottenute però con singole lettere (come 
Are). 


LHarc 

La versione di LHarc per Amiga in 
circolazione attualmente è la 1.00, com- 
patibile con la 1. 13 per MS/DOS, ed è 
stata scritta da Paolo Zibetti (FidoNet 2: 
331/101.6). 

Anche LHarc è un programma di archi- 
viazione di files come Are e Zoo, con i 
quali è compatibile in tutti i comandi fon- 
damentali. Il suo punto debole è la velo- 
cità: Zoo V2.0, ad esempio, è più veloce. 
Comunque, se si preferisce l’efficienza 
di compressione, è il programma miglio- 
re in circolazione per Amiga (e la decom- 
pressione è più veloce della compressio- 
ne). 

La sua sintassi, da Shell, è come se- 
gue: 

LHarc [Switches] <Comando> Ar- 
chivio [Destinazione] [Maschera files) 

...in cui le parentesi quadre delimitano 
parametri opzionali. 

Con Comando si indica una lettera 
secondo quanto visto per Are (figura 1 ), 
con identica funzione, tra le seguenti: 

e, x, I, v, p, t, a, m, d, u, f. 

Con Archivio s\ indica il nome standard 
AmigaDOS (con eventuale path) del file 
di archiviazione, al quale viene, per de- 
fault, aggiunto il suffisso ".LZH" se non 
diversamente specificato. 

Analogamente con Destinazione si in- 
dica la directory di destinazione alla qua- 
le vengono inviati i files estratti con i 
comandi x oppure e. 

Con Maschera files si indica una strin- 
ga che esprima i nomi di files interessati 
all’operazione. 

I caratteri jolly sono "?” e che è 

sinonimo di "#?" (qualunque numero di 
qualunque carattere). Gli switches. cioè 
i modificatori di funzionamento, propri di 
LHarc, sono invece riportati nel terzo 
riquadro. 


I BENCHMARKS 

A bbiamo provato a confrontare tra di loro i programmi di compressione files 
più diffusi , ottenendo dei significativi "benchmarks", dai quali ognuno può 
trarre le proprie conclusioni. 

Si noti che i programmi analizzati sono comunque difficili da paragonare, in 
quanto diversi per concezione tra di loro: LHarc, Zoo e Are sono dei compres- 
sori di archivi veri e propri, mentre Power Packer è in grado di trattare 
agevolmente anche files eseguibili con un notevole grado di sofisticazione ed 
una interfaccia Intuitionìzzata molto evoluta. Inoltre PowerPacker genera un 
file eseguibile con codice di autodecompressione incorporato da un file 
eseguibile, mentre gli altri programmi generano un file archiviato con dei dati 
supplementari che consentono di agganciarvi altri files compressi. 

I benchmarks sono stati eseguiti sui files dei programmi DiskMaster VI .3 di 
61860 Kbytes e l’editor/assembler ArgEd della Argonaut di 149600 bytes. 
contenenti ambedue codici assembly, testi ASCII e dati grafici. Per rilevare i 
tempi è stato utilizzato il programma RTimer del pacchetto Disk Mechanic della 
Lake Forest Logic. 

I computer ospiti erano un Amiga 2000 con scheda GVP Impact A3000 con 
processore 68030 a 25 MHz per il primo benchmark ed un normale Amiga 500 
per il secondo. 

I tempi riportati sono in secondi. Si noti che il programma Power Packer 
V2.3b di Nico Francois è stato usato due volte con efficienze di lavoro diverse 
("besf e "good"). 


Programma 

Tempo 

Bytes Riduzione 

PPacker V2.3b (best) 

126.5 

33448 

46% 

PPacker V2.3b (qood) 

41.8 

34144 

45% 

LHarc VI .00 

17.9 

32002 

48% 

Ì Zoo V2.00 

3.1 

40969 

34% 

Are V5.00 

10.5 

45847 

26% 

Programma 

Tempo 

Bytes 

Riduzione 

PPacker V2.3b (best) 

1707 70904 

52% 

i PPacker V2.3b (qood) 

567 

72944 

51% 

LHarc VI .00 

429 

67006 

55% 

Zoo V2.00 

34 

90986 

39% 

1 Are V5.00 

162 '108524 

27% 


Commodore Computer Club - 89 



Warp 

Il programma Warp della SDS, giunto 
alla versione 1. 1 1 (rintracciabile sul Fish 
Disk 243) è quasi banale da usare. 

Le sue sintassi di chiamata da Shell 
sono: 

Warp read <Start> <end> <nomefile> 

Warp write <nomefile> 

Con la prima linea si impartisce di 
leggere (Read) i dati contenuti nel disco 
inserito nel drive interno, dal settore 
<Start> al settore <End> opzionalmente, 
scrivendo il risultato nel file nomefile. 

Ad esempio, con le linee: 

Warp Read 10 20 DfO: Piera 
Warp Read Dfl: Filosofia 
Warp Write Dfl .Casorate 
si ottiene, rispettivamente: 

(1) la scrittura nel file Piera del disco 
inserito nel drive interno di Amiga dei 


NOTE STORICHE E TECNICHE 

A RC è stato scritto per la prima volta nel 1 985 dalla System Enhancement 
Associates (21 New Stree, Wayne, NJ 07470, USA) e da allora è stato 
sviluppato probabilmente per qualunque tipo di computer in grado di collegarsi 
ad una rete. Sono poi state introdotte versioni sempre nuove di Are, ma le sue 
caratteristiche nel mondo Amiga sono superate da quelle di altri programmi di 
più recente creazione (Zoo, LHarc), che fanno uso di algoritmi di compressione 
nuovi. Non dimentichiamo che l'informatica e le branche della matematica 
dedite alla formulazione di algoritmi iterativi ed adatti ai computers sono di 
nascita relativamente recente, quindi nascono invenzioni ed idee nuove 
piuttosto frequentemente! 

Comunque, alla base della nascita di ARC e dei compressori di archivi vi 
sono un numero ristretto di personaggi e di concetti, dai quali è nata la filosofia 
e la tecnologia di base di questo tipo di software. Citiamo Brian Kernighan (si, 
quello del linguaggio C!) e Paul Plauger che hanno formulato le prime idee nel 
libro "Software Tools", Dick Greenlaw che ha scritto i programmi di pubblico 
dominio SQ e USQ (già pubblicati da Amigazzetta), Kent Williams che ha 
trasformato delle formule matematiche di Lempel-Zev in un programma fun- 
zionante per la prima volta e David Schaderer che ha formulato e pubblicato 
su PC Tech Journal il primo algoritmo di CRC (Cycle Redundancy Check) 
adatto a piccoli sistemi computerizzati, che ha dato la prima idea funzionante 
per aumentare l'affidabilità dei sistemi di compressione di archivi. 



contenuti dei settori tra il decimo ed il 
ventesimo compresi. 

(2) la scrittura dell’intero contenuto del 
disco inserito nel drive interno nel file 
Filosofia sul disco inserito nel primo dri- 
ve esterno (o secondo interno di A2000)- 

(3) di riscrivere il disco inserito nel 
drive interno leggendo dal disco DF1 il 
file Casorate, che ovviamente deve es- 
sere stato generato da Warp. 

Si noti che Warp lavora sempre sul 
disco inserito in DFO: e che non ha molto 
senso, normalmente, specificare i settori 
di inizio e di file della lettura, in quanto 
un disco AmigaDOS parzialmente sal- 
vato serve a ben poco, quindi bisogna 
sempre salvare da 0 a 79 (default). 

Insieme a Warp si trova spesso anche 
UnWarp, che è più veloce nell’effettuare 
l'operazione di Warp Write di un file, e 
verifica, nel contempo, l’eventuale pre- 
senza di quindici tipi di virus. 

Si ricordi che i virus di bootblock di 
Amiga giacciono nei settori 0 e 1 del 
disco, quindi Warp potrebbe tranquilla- 
mente archiviarli e ricostruirli al momen- 
to del Warp Write! 

Con UnWarp si è parzialmente protetti 
da questo rischio, anche se alcuni nuovi 
Link Virus, quelli che non si attivano al 
boot ma si agganciano ai files eseguibili, 
non sono ancora stati previsti e quindi 
non possono esser riconosciuti. 


90 - Commodore Computer Club 



GUIDA ALL’ACQUISTO 

QUANTO COSTA IL TUO COMMODORE 

Amiga 2000 - L. 2.715.000 

Microprocessore Motorola MC68000 - Clock 7. 16MHz - Kickstart ROM - Memoria RAM: 1 MByte - 3 chip custom per DMA, Video, Audio, I/O - 
5 Slot di Espansione Amiga Bus 1 00 pin AutoconfigTM - i slot di Espansione 86 pin per Schede Coprocessore - 2 Slot di Espansione compati- 
bili AT/XT- 2 Slot di Espansione compatibili XT - 2 Slot di Espansione Video - 1 Floppy Disk Drive da 3 1/2", 880 KBytes - Porta seriale RS232C * 
- Sistema Operativo single-user, multitasking AmigaDOS - Compatibilità MS-DOS XT/AT disponibile con schede interne Janus (A2088 - 
A2286) - Monitor escluso 


Amiga 500 - L. 995.000 

Microprocessore Motorola MC68000 - Clock 7.16 MHz - Kickstart ROM - Memoria RAM: 512 KBytes - 3 Chip custom per DMA, Video. Audio, 
I/O - 1 Floppy Disk Driver da 3 1/2", 880 KBytes - Porta seriale RS232C - Porla parallela Centronics 

Videomaster 2995 - L. 1.200.000 

Desk Top Video - Sistema per elaborazini video semiprofessionale composto da genlock, digitalizzatore e alloggiamento per 3 drive A201 0 - In- 
gressi videocomposito (2), RGB - Uscite Videocomposito, RF, RGB + sync - 

Floppy Disk Driver A 1010 - L. 335.000 

Floppy Disk Driver - Drive esterno da 3 1/2” - Capacità 880 KBytes - Collegabile a tutti i modelli della linea Amiga, alla scheda A2088 e 
al PCI 


Floppy Disk Drive A 2010 - L. 280.000 

Floppy Disk Drive - Drive interno aggiuntivo da 3 1/2" - Capacità 880 KBytes - Collegabile ad Amiga 2000 

Hard Disk A 590 - L. 1.750.000 

Hard Disk+ Controller + RAM - Scheda Controller - Hard Disk da 3 1/2” 20 MBytes - 2 MBytes "fast" RAM - Collegabile all'Amiga 500 

Scheda Janus A 2088 + A 2020 - L. 1.050.000 

Scheda Janus XT + Floppy Disk Drive da 5 1 /4", 360 KBytes - Scheda Bridgeboard per compatibilità MS-DOS (XT) in Amiga 2000 - Micropro- 
cessore Intel 8088 - Coprocessore matematico opzionale Intel 8087 

A2286+A2020 - L. 1.985.000 

Scheda Janus AT 4- Floppy Disk Drive da 5 1/4", 1 .2 MBytes - Scheda Bridgeboard per compatibilità MS-DOS (AT) in Amiga 2000 - Micropro- 
cessore Intel 80287 - Clock 8 MHz - RAM: 1 MBytes on-board - Floppy Disk Controller on-board - Floppy Disk Driver disegnato per l'installazio- 
ne all'Interno dell’Amiga 2000 - 

Scheda A2620 - L. 2.700.000 

Scheda Processore Alternativo 32 bit - Scheda per 68020 e Unix - Microprocessore Motorola MC68020 - Coprocessore matematico Motorola 
MC6888 1 (opzionale MC68882) 

Scheda A Unix - L. 3.250.000 

Sistema Operativo AT&T Unix System V Release 3 - Per Amiga 2000 con scheda A2620 e Hard Disk 100 MBytes 

Hard Disk A2092+PC5060 - L. 1.020.000 

Hard Disk e controller - Hard Disk 3 1/2" ST506 - Capacità formattata 20 MBytes 

Hard Disk A2090+2092 - L. 1.240.000 

Hard Disk e controller - Hard Disk 3 1/2" ST506 - Capacità formattata 20 MBytes 

Hard Disk A2090+A2094 - L. 1.900.000 

Stesse caratteristiche del kit A2092 ma con disco da 40 MBytes 

Espansione di memoria A2058 - L. 1.149.000 

Espansione di memoria - Scheda di espansione per Amiga 2000 - Fornita con 2 MBytes "fast" RAM, espandibile a 4 o 8 MBytes 

Scheda Video A2060 - L. 165.000 

Modulatore video - Scheda modulatore video interna per Amiga 2000 - Uscite colore e monocromatica - Si inserisce nello slot video 
dell'Amiga 2000 

Genlock Card A2301 - L. 420.000 

Genlock - Scheda Genlock semiprofessionale per Amiga 2000 - Permette di miscelare immagini provenienti da una sorgente esterna con im- 
magini provenienti dal computer 

Professional Video Adapter Card A2351 - L. 1.500.000 

Professional Video Adapter - Scheda Video Professionale per Amiga 2000 (B) - Genlock qualità Broadcast - Frame Grabber - Digitalizzatore - 
Include software di controllo per la gestione interattiva 
(Disponibile da maggio '89) 


A501 - L. 300.000 

Espansione di memoria - Cartuccia di espansione di memoria da 512 KBytes per A500 

A520 - L. 45.000 

Modulatore RF - Modulatore esterno A500 - Permette di connettere qualsiasi televisore B/N o colori ad Amiga 500 


Commodore Computer Club - 97 



A Scart - L. 27.000 

Cavo di collegamento A500/A2000 con connettore per televisione SCART 

Monitor a colori 1084 - L. 595.000 

Monitor a colori ad alta risoluzione - Tubo 14” Black Matrix antiriflesso - Pitch 0.39 mm - Compatibile con Amiga 500/2000, PC (tutta la 
gamma), C64 e CI 28 

Monitor a colori 2080 - L. 770.000 

Monitor a colori ad alta risoluzione e lunga persistenza - Tubo 14” Black Matrix antiriflesso - Pitch 0.39 mm - Frequenza di raster 50 Hz - Compa- 
tibile con Amiga 500/2000, PC (tutta la gamma), C64 e CI 28 

Monitor Monocromatico A2024 - L. 1.235.000 

Monitor monocromatico a fosfori “bianco-carta” - Turbo 14" antiriflesso - (Disponibile da marzo '89) 

PC60/40 - L. 7.812.000 

Microprocessore Intel 80386 - Coprocessore matematico opzionale Intel 80387 - Clock 8 o 16 MHz selezionabile via software e da tastiera - 
Monitor monocromatico 14" - Tastiera avanzata 102 tasti con 12 funzioni - Sistema Operativo MS-DOS 3 2.1 - Interprete GW-Basic 

PC60/40C - L. 8.127.000 

Stessa configurazione ma con monitor 14" a colori mod. 1084 

PC 60/80 - L. 10.450.000 

Microprocessore Intel 80386 - Coprocessore opzionale Intel 80387 - Clock 8 o 1 6 MHz selezionabile via software e da tastiera - Memoria RAM: 
2.5 MBytes - 1 Floppy Disk Drive da 5 1/4", 1.2 MBytes - 1 Floppy Disk Drive opzionale da 3 1/2”, 1.44 MBytes - 1 Hard Disk da 80 MBytes- 2 
Porte parallele Centronics - Mouse video EGA (compatibile MDA - Hercules - CGA). Emulazioni disponibili via hardware e software - Monitor 
monocromatico 14" -Tastiera avanzata 102 tasti con 1 2 tasti funzione - Sistema Operativo MS-DOS 3.21 - Ambiente Operativo Microsoft Win- 
dows/386 - Interprete GW-Basic 

PC60/80C - L. 10.700.000 

Stessa configurazione ma con monitor 14" a colori mod. 1084 

PC40/20 - L. 4.100.000 

Microprocessore Intel 80286 - Coprocessore matematico opzionale Intel 80287 - Clock 6 o 10 MHz selezionabile via software, hardware o da 
tastiera - Memoria RAM: 1 MByte - 1 Floppy Disk Drive da 5 1/4", 1.2 MBytes - 1 Hard Disk da 20 MBytes - Porta seriale RS232 - Porta parallela 
Centronics - Scheda video AGA multistandard (MDA - Hercules - CGA) Emulazioni disponibili via hardware e software - Monitor monocroma- 
tico 14" - Tastiera avanzata 102 tasti con 12 tasti funzione - Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic 

PC40/20C - L. 4.350.000 

Stessa configurazione ma con monitor 14" a colori mod. 1084 

PC 40/40 - L. 5.285.000 

Microprocessore Intel 80286 - Coprocessore matematico opzionale Intel 80287 - Clock 6 o 10 MHz selezionabile via software, hardware o da 
tastiera - Memoria RAM: 1 MByte-1 Floppy Disk Drive da 5 1/4", 1.2MBytes- 1 Hard Disk da 20 MBytes -Porta seriale RS232- Porta parallela 
Centronics - Scheda video AGA multistandard (MDA - Hercules - CGA) Emulazioni disponibili via hardware e software - Monitor monocroma- 
tico 14” - Tastiera avanzata 102 tasti con 12 tasti funzione - Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic 

PC40/40C - L. 5.535.000 

Stessa configurazione ma con monitor 14” a colori mod. 1084 

1352 - L. 78.000 

Mouse - Collegabile con Microsoft Bus Mouse - Collegabile direttamente a PCI, PC10/20 - III, PC40 - III 

PC910- L. 355.000 

Floppy Disk Drive - Drive interno aggiuntivo da 3 1 /2" per PC 1 0/20-I-II-III - Capacità 360 o 720 KBytes selezionabile tramite "config. sys" - Cor- 
redo di telaio di supporto per l’installazione in un alloggiamento per un drive da 5 1/4" - Interfaccia identica ai modelli da 5 1/4" 

PCI - L. 995.000 

Microprocessore Intel 8088 - 1 Floppy Disk Drive da 5 1/4” - Porta seriale RS232C - Porta parallela Centronics - - Monitor monocromatico 1 2" - 
Tastiera 84 tasti - Sistema Operativo MS-DOS 3.2 - Interprete GW-Basic 

PCEXP1 - L. 640.000 

PC Expansion Box - Box esterno di espansione per PC 1 - Alimentatore aggiuntivo incluso - Contiene 3 Slot di Espansione compatibili Ibm XT - 
Alloggiamento per Hard Disk da 5 1/4" - Si posiziona sotto ii corpo del PCI e viene collegato tramite degli appositi connettori 

PC10-III - L. 1.360.000 

Microprocessore Intel 8088 Clock 4.77 MHz 9.54 MHz (doublé) selezionabile via software e da tastiera - Memoria RAM: 640 KBytes - 2 Floppy 
Disk Drive da 5 1/4", 360 KBytes - Porta seriale RS232C - Porta parallela Centronics - Porta Mouse per Mouse Commodore 1352 (compatibile 
Microsoft Bus Mouse - Tastiera avanzata 1Ò2 con 12 tasti funzione Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic 

PC10-IIIC - L. 1.675.000 

Stessa configurazione ma con monitor 14" a colori mod. 1084 

PC20-III - L. 2.095.000 

Microprocessore Intel 8088 - Clock 4.77 MHz 9.54 MHz (doublé) selezionabile via software e da tastiera - 1/4", 360 KBytes - 1 Hard Disk da 20 
MBytes - Porta seriale RS232C - Porta parallela Centronics - Porta Mouse per Mouse Commodore 1352 (compatibile Microsoft Bus Mouse) - 
Tastiera avanzata 102 con 12 tasti funzione Sistema Operativo MS-DOS 3.21 - Interprete GW-Basic 


92 - Commodore Computer Club 


PC 20- 1 1 1 C - L. 2.410.000 

Stessa configurazione ma con monitor 14” a colori mod. 1084 

Nuovo C64 • L. 325.000 

Nuovo Personal Computer CPU 64 KBytes RAM - Vastissima biblioteca software disponibile - Porta seriale Commodore - Porta registratore per 
cassette - Porta parallela programmabile - 

C128D - L. 895.000 

Personal Computer CPU 128 KBytes RAM espandibile a 512 KBytes - ROM 48 KBytes - Basic 7.0 - Tastiera separata - Funzionante in modo 
128,64 o CP/M 3.0 - Include floppy disk drive da 340 KBytes 

Floppy Disk Drive 1541 II - L. 385.000 

Floppy Disk Drive - Floppy Disk Drive da 5 1/4" singola faccia - Capacità 170 KBytes - Alimentazione separata - Compatibile con C64, 
CI 28, C128D 


Floppy Disk Dirve 1581 - L. 420.000 

Floppy Disk Drive da 3 1/2" doppia faccia - Capacità 800 KBytes - Alimentazione separata - Compatibile con C64. CI 28. C128D 

1530 - L. 55.000 

Registratore a cassette per C64, CI 28, C128D 

Accessori per C64 - 128D 

1700 - Espansione di memoria - Cartuccia di espansione di memoria a 128 KBytes per CI 28 - L. 170.000 
1750 - Espansione di memoria - Cartuccia di espansione di memoria 512 KBytes per C128 - L. 245.000 

1784 - Espansione di memoria - Cartuccia di espansione di memoria a 256 KBytes per C64 - Fornita di alimentatore surdimensionato - 

L. 198.000 


16499 - Adattatore Telematico Omologato - Collegabile al C64 - Permette il collegamento a Videotel. P.G.E. e banche dati 

L. 149.000 


1399 - Joystick - Joystick a microswitch con autofire - L. 29.000 
1351 - Mouse - Mouse per C64, C128, C128D - L. 72.000 

Monitor Monocromatico 1402 - L. 280.000 

Monitor monocromatico a fosfori “bianco-carta" - Turbo 12” antiriflesso - Ingresso TTL - Compatibile con tutta la gamma PC 

Monitor Monocromatico 1404 - L. 365.000 

Monitor monocromatico a fosfori ambra - Turbo 14" antiriflesso a schermo piatto - Ingresso TTL - Compatibile con tutta la gamma PC - 
Base orientabile 


Monitor Monocromatico 1450 - L. 470.000 

Monitor monocromatico BI-SYNC a fosfori "bianco-carta" - Turbo 14" antiriflesso - Ingresso analogico e digitale - Doppia frequenza di sincro- 
nismo orizzontale per compatibilità con adattatori video MDA, Hercules, CGA, EGA e VGA 

Monitor a colori 1802 - L. 445.000 

Monitor a colori - Turbo 14" - Collegabile a C64, CI 28, C128D 

Monitor monocromatico 1900 - L. 199.000 

Monitor monocromatico a fosfori verdi - Turbo 12" antiriflesso - Ingresso videocomposito - Compatibile con tutta la gamma Commodore 

Monitor a colori 1950 - L. 1.280.000 

Monitor a colori BI-SYNC alta risoluzione - Turbo 14" antiriflesso - Ingresso analogico e digitale - Doppia frequenza di sincronismo orizzontale 
per compatibilità con adattatori video MDA, Hercules, CGA, EGA e VGA 

Stampante MPS 1230 - L. 465.000 

Stampante a matrice di punti - Testina a 9 aghi - 120 cps - Bidirezionale - 80 colonne - Near Letter Quality - Stampa grafica - Fogli singoli e 
modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia seriale Commodore e parallela Centronics - Compatibile con tutti i 
prodotti Commodore 


MPS 1230R - L. 19.000 

Nastro per stampante 

Stampante MPS 1500C - L. 495.000 

Stampante a colori a matrice di punti - Testina a 9 aghi - 130 cps - Bidirezionale - 80 colonne - Supporta nastro a colori o nero - Near Letter Qua- 
lity - Stampa grafica - Fogli singoli e modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia parallela Centronics - Compatibile con 
la gamma Amiga e PC 

MPS1500R - L. 37.000 

Nastro a colori per stampante 

MPS1500R - L.37.000 

Nastro a colori per stampante 

Stampante MPS 1550C - L. 575.000 

Stampante a colori a matrice di punti - Testina a 9 aghi - 1 30 cps - Bidirezionale - 80 colonne - Supporta nastro a colori o nero - Near Letter Qua- 
lity - Stampa grafica - Fogli singoli e modulo continuo - Trascinamento a trattore e/o frizione - Interfaccia seriale Commodore e parallela Centro- 
nics - Compatibile con tutti i prodotti Commodore 


Commodore Computer Club - 93 


I COMMODORE POINT 


LOMBARDIA 

Minio 

• Ai RISPARMIO • V.IE MONZA 204 

• BCS • VIA UONTEGANI 11 

• BRAMA A . VIA PIER CAPPONI 5 

• E D S - C.SO PORTA TICINESE a 

• FAREF - VIA A VOLTA 21 

• FIOPPERIA - V IE MONTENERO 31 

• GBC - VIA CANTONI 7 - VIA PETRElLA 6 

• GIGLIONI - V LE LUIGI STURZO 45 

• L UFFICIO 2000 - VIA RIPAMONTI 213 

• LOGITEK • VIA GOLGI 60 

• LU - MEN - VIA SANTA MONICA 3 

• MARCUCCI • VIA FILI BRONZETTI 37 

• MELCHIONI - VIA P. COLLETTA 37 

• MESSAGGERIE MUSICALI - GALLERIA DEL 
CORSO 2 

• NEWEL - VIA MAC MAHON 75 

• PANCOMMER2 ITALIA - VIA PADOVA 1 

• SUPERGAMES • VIA VITRUVIO 38 

• 68000 E DINTORNI - VIA WASHINGTON 91 

Provincia di Milano 

• GINO FERRARI CENTRO HI-FI - VIA MADRE 
CABRINI 44 - S ANG LODK3IANO 

• FILI GALIMBERTI - VIA NAZIONALE DEI 
GIOVI 28' 36 - BARLASSINA 

• TECNOLUX - VIA PIETRO NENNI 5 - BERNATE 
TICINO 

• OGGIONI & C. - VIA DANTE CESANA 27 - CA- 
RATE BRIANZA 

• AL RISPARMIO - VIA U. GIORDANO 57 - CINI- 
SELLO BALSAMO 

• GBC - V.LE MATTEOTTI 66 - CINISELLO 
BALSAMO 

• CASA DELLA MUSICA - VIA INDIPENDENZA 
21 - COLOGNO MONZESE 

• PENATI - VIA VERDI 28/30 - CORBETTA 

• EPM SYSTEM - V LE ITALIA 12 - CORSICO 

• PG. OSTELLARI - VIA MILANO 300 • 
DESIO 

• CENTRO COMPUTER PANDOLFI - VIA COR- 
RIDOI 18 - LEGNANO 

• COMPUTEAM - VIA VECELUO 41 - LISSONE 

• M B M - CSO ROMA 112 • LODI 

• L AMICO DEL COMPUTER - VIA CASTELLINI 
27 - MELEGNANO 

• BIT 84 - VIA ITALIA 4 - MONZA 

• IL CURSORE • VIA CAMPO DEI FIORI 35 - NO- 
VATE MIL 

• ICO - VIA DEI TIGLI 14 - OPERA 

• R A C ELGRA - VIA SAN MARTINO 13 - PA- 
LAZZOLO MIL. 

• ESSEGIEMME SISTEMI SAS - VIA DE AMICIS 
24 - RHO 

• TECNO • CENTRO - VIA BARACCA 2 - 
SEREGNO 

• NIWA H ARDA SOFT - VIA B- BUOZZI 94 - SE- 
STO SAN GIOV 

• COMPUTER SHOP - VIA CONFALONIERI 
35 - VILLASANTA 

• ACTE - VIA B CREMIGNAN1 13 - VIMERCATE 

• IL COMPUTER SERVICE SHOP - VIA PADANA 
SUPERIORE 197 - VIMODRONE 

Bergamo 

•D.R.B. - VIA BORGO PALAZZO 65 

• TINTORI ENRICO AC. - VIA BROSETA 1 

• VIOEO IMMAGINE - VIA CARDUCCI c/o CIT- 
TA' DI MERCATO 

Provincia di Bergamo 

BERTULEZZI GIOVANNI - VIA FANTONI 48 - AL- 
ZANO LOMBAROO 

• COMPUTER SHOP - VIA VITTORIO VENETO 9 
- CAPRIATE SAN GERVASlO 

• B M R - VIA BUTTARO 4/T - CALMINE 

• MEGABYTE 2 - VIA ROMA 61/A - GRUMELLO 

• OTTICO OPTOMETRISTA ROVETTA - P ZZA 
GARIBALDI 6 - LOVERE 

• COMPUTER POINT - VIA LANTIERI 52 • 
SARNICO 

• A B. INFORMATICA - STRADA STATALE CRE- 
MASCA 66 - URGNANO 


Brescia 

• MASTER INFORMATICA - VIA F.LLI UGONI 
10/B 

PROVINCIA DI BRESCIA 

• MISTER BIT - VIA MAZZINI 70 - BRENO 

• CAVALLI PIETRO - VIA 10 GIORNATE 14 
BIS - CASTREZZATO 

• VIETTI GIUSEPPE - VIA MILANO 1/B - 
CHIARI 

• MEGABYTE - P.ZZA MALUEZZI 14 - DESEN- 
ZANO DEL GARDA 

• BARESI RINO 4C. - VIA XX SETTEMBRE 7 
- GHEOI 

• INFO CAM - VIA PROVINCIALE 3 - GRATA- 
CASOLO 

• PAC-LAND" di GARDONI - CENTRO COM I® - 
LA CASA DI MARGHERITA DESTE - VIA GlOR- 
GIONI 21 

Como 

• IL COMPUTER • VIA INDIPENDENZA 90 

• 2M ELETTRONICA - VIA SACCO 3 

Provincia di Como 

• ELTRON - VIA IV NOVEMBRE 1 • GARZANO' 

• DATA FOUND - VIA A. VOLTA 4 -ERBA 

• CIMA ELETTRONICA - VIA L DA VINCI 7 • 
LECCO 

• FUMAGALLI - VIA CAIROU 48 -LECCO 

• RIGHI ELETTRONICA - VIA G LEOPARDI 26 • 
OLGIATE COMASCO 

Cremona 

• MONDO COMPUTER - VIA GIUSEPPINA 
11/8 

• PRISMA - VIA BUOSO DA DOVARA 8 

• TELCO - P.ZZA MARCONI 2/A 

Provincia di Cremona 

• ELCOM - VIA IV NOVEMBRE 56/58 • 
CREMA 

• EUROELETTRONICA - VIA XX SETTEMBRE 
92/A -CREMA 

Mantova 

• COMPUTER CANOSSA - GAL. FERRI 7 

• 32 BIT - VIA C. BATTISTI 14 

• ELET. di BASSO - V.LE RISORGIMENTO 69 

Provincia di Manlova 

• CLICK - ON COMPUTER - SS GOlTESE 
168 - GOITO 

Pavia 

• POLIWARE - C.SO C ALBERTO 76 

• SENNA GIANFRANCO - VIA CALCHI 5 

Provincia di Pavia 

• A FERRARI - C.SO CAVOUR 57 - MORTARA 

• LOGICA MAINT - V.LE M TE GRAPPA 32 - 
VIGEVANO 

• M VISENTIN • C.SO V. EMANUELE 76 - 
VIGEVANO 

Sondrio 

• CIPOLLA MAURO • VIA TREMOGGE 25 

Provincia di Sondrto 

• FOTONOVA - VIA VALERIANA 1 - S. PIETRO DI 
BERBENNO 

Varese 

• ELLE - EFFE - VIA GOLDONI 35 

• IL C.TRO ELET. . VIA MORAZZONE 2 

• SUPERGAMES - VIA CARROBBIO 13 

Provincia di Varese 

• BUSTO BIT - VIA GAVINANA 17-BUSTO A. 

• MASTER PIX - VIA S.MICHELE 3 - BUSTO A. 

• PUNTO UFFICIO • VIA R SANZIO 8 - GALLA- 
RATE 

• GRANDI MAGAZZINI BOSSI - VIA CLERICI 
196 • GERENZANO 

• J.A.C. - C.SO MATTEOTTI 38 - SESTO C. 

PIEMONTE 

Alessandria 

• BIT MICRO • VIA MAZZINI 102 

• SERV. INFOR. - VIA ALESSANDRO III 47 
Provincia di Alessandria 

• SONY ITALIANA - VIA G. MANARA 7 - CASA- 
LE MONFERRATO 

• SGE ELETTRONICA - VIA BANDELIO 19 - 
TORTONA 


• COMPUTER TEMPLE - VIA F. CAVALLOTT1 13 

- VALENZA 

Asti 

• ASTI GAMES - C.SO ALFIERI 26 

• RECORD - C.SO ALFIERI 166/3 (Galleria 
Argenta) 

Cuneo 

• ROSSI COMPUTERS - C SO NIZZA 42 

Provincia di Cuneo 

• PUNTO BIT - C.SO LANCHE 26/C - ALBA 

• BOSETTI - VIA ROMA 149 - FOSSANO 

• COMPUTERLAND - VIA MAZZINI 30/32 • 
SALUZZO 

Novara 

• PROGRAMMA 3 - V.LE BUONARROTI 8 

• PUNTO VIDEO - C.so RISORGIMENTO 39/B 

Provincia di Novara 

• COMPUTER - VIA MONTE ZEDA 4 -ARONA 

• ALL COMPUTER - C SO GARIBALDI 106 • 
BORGOMANERO 

• S.P.A. - C.SO DISSEGNA 21 /BIS - 
DOMODOSSOLA 

• ELLIOTT COMPUTER SHOP - VIA DON MIN- 
ZONI 32 - INTRA 

• TRISCONI VALERIA - VIA MAZZINI 90 - 
OMEGNA 

Torino 

• ABA ELETTRONICA - VIA C FOSSATI 5/P 

• ALEX COMPUTER E GIOCHI - C.SO FRAN- 
CIA 333/4 

• COMPUTER HOME - VIA SAN DONATO 
46/D 

• COMPUTING NEW - VIA M. POLO 40/E 

• C.D.M ELETTR. - VIA MAROCHETTI 17 

• DE BUG - C.SO V. EMANUELE II 22 

• DESME UNIVERSAL - VIA S.SECONDO 95 

• FDS ALTERIO - VIA BORGARO 86/D 

• IL COMPUTER - VIA N. FABRIZI 126 

• MICRONTEL - C SO D degl. ABRUZZI 28 

• PLAY GAMES SHOP - VIA C ALBERTO 39/E 

• RADIO TV MIRAFlORl - C SO UNIONE SOVIE- 
TICA 381 

• SMT ELETTRONICA - VIA BIBIANA 83/t>iS 

Provincia di Torino 

• PAUL E CHICO VIDEOSOUND - VIA V.EMA- 
NUELE 52 • CHIERI 

• BIT INFORMATICA - VIA V. EMANUELE 
154 - CIRIE' 

• HI-FI CLUB - C.SO FRANCIA 92C - 
COLLEGNO 

• MISTER PERSONAL - VIA CATTANEO 52 - 
FAVRIA 

• LC.S. - VIA TORINO 73 - IVREA 

• DAG - VIA I MAGGIO 40 - LUSERNA S. 
GIOVANNI 

• EUREX - C.SO INDIPENDENZA 5 - Rl- 
VAROLO CANAVESE 

• DIAM INFORMATICA - C SO FRANCIA 146 bis 

- RIVOLI 

• FULLINFORMATICA - VIA V. VENETO 25 - RI- 
VOLI 

• GAMMA COMPUTER - VIA CAVOUR 3A-3B 

- SET. TORINESE 

Vercelli 

•ELETTROGAMMA - C.SO BORMIOA 27 ang. 
V. Montanara 

• ELETTRONICA - STRADA TORINO 15 

Provincia di Vercelli 

• C S I. TEOREMA - VIA LOSANA 9 - BIELLA 

• SIGEST - VIA BERTODANO 8 - BIELLA 

• REMONDINO FRANCO - VIA ROMA 5 - 
BORGOSESIA 

• FOTOSTUDIO TRÉVISAN - VIA XXV APRILE 
24/B - COSSATO 

• STUDIO FOTOGRAFICO IMARISIO - P ZZA M. 
LIBERTA' 7 - TRINO 

VENETO 

Belluno 

• UP TO DATE - VIA V. VENETO 43 

Provincia di Belluno 

• GUERRA COMPUTERS - V.LE MAZZINI 10/A - 


FELTRE 

Padova 

• BIT SHOP - VIA CAIROU 11 

• COMPUMANIA - VIA T. CAMPOSANPIERO 37 

• D.P.R DE PRATO R. - V.LO LOMBARDO 4 

• G.F. MARCATO - VIA MADONNA DELLA SA- 
LUTE 51/53 

• SARTO COMPUTER • VIA ARMISTIZIO 79 

Provincia di Padova 

• COMPUTER SERVICE - BORGO TREVISO 1 50 

- CITTADELLA 

Treviso 

• BIT 2000 - VIA BRANDOLINI D ADDA 14 

• GUERRA EGIDIO & C. - V.LE CAIROU 95 

Provincia di Treviso 

• DE MARIN COMPUTERS • VIA MATTEOTTI 
142 - CONEGLIANO 

• Si DE STREET - VIA SALVO D'ACQUISTO 8 

- MONTEBELLUNA 

• FALCON ELETTROAUDIOVIDEO - VIA TER- 
RAGGIO 116 - PREGANZIOL 

Venezia 

• GUERRA EGIDIO & C. - VIA BISSUOLA 
20/A - MESTRE 

• TELERADIO FUGA - SAN MARCO 3457 

Provincia di Venezia 

• GUERRA EGIDIO & C. - VIA VIZZOTTO 29 • 
SAN DONA' DI PIAVE 

• REBEL - VIA F. CRISPI 10 - SAN DONA 1 DI 
PIAVE 

Verona 

• CASA DELLA RADIO - VIA CAIROU 10 

• TELESAT - VIA VASCO DE GAMA 6 

• Provincia di Verona 

• U BER - CP 0363(RAG SOC. DERTA) - VIA MA- 
SCAGNI 31 -CASTE* CAZZANO 

• FERRARIN - VIA DEI MASSAR1 10 • LEGNAGO 

• COMPUTERS CENTER - VIA CANTORE 26 

- VILLAFRANCA 
Vicenza 

• ELET. BISELLO - V.LE Tfi'ESTE 427/429 

• SCALCHI MARKET - VIA C.V BALBI 139 
Provincia di Vicenza 

• SCHIAVOTTO - VIA ZANELLA 21 - 
CAVAZZALE 

• GUERRA E 4 C. - V.LE DELLE INDUSTRIE • 
MONTECCHIO MAGGIORE 

FRIULI VENEZIA GIULIA 
Gorizia 

• E CO. ELETTRONICA - VIA F.LLI COSSAR 
23 

Trieste 

• AVANZO GIACOMO - P ZZA CAVANA 7 

• COMPUTER SHOP • VIA P. RETI 6 

• COMPUTIGI - VIA XX SETTEMBRE 51 

• CTI - VIA PASCOLI 4 

Udine 

• MOFERT 2 - VIA LEOPARDI 21 

• R.T. SISTEM UDINE - VIA L DA VINCI 99 

Provincia di Udine 

• IL PUNTO ELETTRONICO - VIA VENDRAMIN 
184 - LATISANA 

• I DRENO MATTIUSSI 4C. - VIA UCINIANA 
58 - MARTIGNACCO 

TRENTINO ALTO ADIGE 
Bolzano 

• COMPUTER POINT - VIA ROMA 82/A 

• MATTEUCCI PRESTIGE - VIA MUSEO 54 

Provincia di Bolzano 

• RADIO MAIR-ELECTRO - VIA CENTRALE 
70 - BRUNICO 

• ELECTRO RADIO HENDRICH - VIA DELLE 
CORSE 106 - MERANO 

• ERICH KONTSCHIEDER - PORTICI 313 - 
MERANO 

• ELECTRO TAPPEINER - P.ZZA PRINCIPALE 
90 - SILANDRO 

Trento 

• CRONST - VIA G. GALILEI 25 

Provincia di Trento 


94 - Commodore Computer Club 



• 4. risparmio - c.so Verona im • 

*: «ERETO 

JGURIA 

Genova 

• ABM COMPUTER - P ZZA DE FERRAR. 24 

'»so 

• CAPRIOTTI G. • IA MAMIANJ 4r - 
5AMPIERDARENA 

• Ciro ELET • VIA CHIARAVAGNA 10 R - VIA 
SESTRI 69R 

• OOMJt SOTTORIPA - VIA SOTTORIPA 
115/117 

• FOTOMOND1AL - VIA DEL CAMPO 3-5-9-11- 
13 r 

• LA NASCENTE - VIA SAN LUCA 4/1 

• PLAY TIME - VIA GRAMSCI 3/5/7 rosso 

• RAPPR-EL - VIA BORGORATTI 23 R 

Imperia 

• CASTELLINO • VIA BELGRANO 44 

Provincia di Imperia 

• CENTRO HI-FI VIDEO - VIA DELLA REPUB- 
BLICA 38 -SANREMO 

• CASTELLINO - VIA GENOVA 48 - V6N- 
TIMIGLIA 

La Spezia 

• I.L ELETTRONICA - VIA V. VENETO 123 

Provincia (fi La Spezia 

• II. ELETTRONICA - VIA AURELI A 299 • FOR- 
NOLA DI VEZZANO 

Savona 

« CASTELLINO - C.SO TARDY E BENECH 
101 

Provincia di Savona 

• CELESIA ENZA - VIA GARIBALDI 144 . 
LOANO 

EMILIA 

Bologna 

• EUROELETTRICA - VIA RANZANI 13/2 

• MINNELLA ALTA FEDELTÀ' - VIA MAZZINI 
146/2 

• MORINI 4 FEDERICI - VIA MARCONI 28/C 

• STERLINO • VIA MURRI 73/75 

Provincia di Bologna 

• S.C. COMPUTERS • VIA E FERMI 4 - CASTEL 
SAN PIETRO 

• S.P.E INFORMATICA - VIA DI MEZZO PO- 
NENTE 385 - CREVALCORE 

« ARCHIMEDE SISTEMI - VIA EMILIA 124 - S 
LAZZARO DI SAVENA 

Modena 

• CO - EL - VIA CESARI 7 

• ORSA MAGGIORE • P ZZA MATTEOTTI 20 

• VIDEO VAL WILLY COMPUTERS - VIA CANA- 
LETTO 223 

Provincia (fi Modena 

• NEW MEDIA SYSTEM - VIA ROMA 281 - 
SOLIERA 

Parma 

• BABARELLI G. - VIA B. PARENTE 14/A/B 

Provincia (fi Parma 

• PONGOLINI - VIA CAVOUR 32 - PIOENZA 

Piacenza 

• COMPUTER UNE - VIA G. CARDUCCI 4 

• DELTA COMPUTER • VIA M DELLA RESI- 
STENZA 15/G 

TEGGIO EMILIA 

• COMPUTERLINE - VIA SAN ROCCO 10/C 

• POOL SHOP - VIA EMILIA S. STEFANO 
9/C 

Provincia di Reggio Emilia 

• MACCHIONI - VIA STATALE 467 . CA- 
SALGRANDE 

ROMAGNA 

Ferrara 

• BUSINESS POINT - VIA CARLO MAYER 85 

Forti 

• COMPUTER VIDEO CENTER - VIA CAMPO DI 
MARTE 122 

Provincia di Forti 


• TOP BIT - VIA VENETO 12 - FORUM- 
POPOLI 

• COMPUTER HOUSE - V.LE TRIPOLI 193/D 

- RIMINI 

• EASY COMPUTER - VIA LAGOMAGGlO 50 

- RIMISI 

REPUBBLICA S. MARINO 
Ravenna 

• COMPUTER HOUSE • VIA TRIESTE 134 

Provincia di Ravenna 

• ARGNANI - P ZZA DELLA L BERTA 5'A - 
FAENZA 

• ELECTRON INFORMATICA - VIA F HI COR- 
TESI 17 - LUGO 

• P L Z INFORMATICA - P ZZA SERCOGNANI 6 

- FAENZA 

TOSCANA 

Arezzo 

• DELTA SYSTEM - VIA PIAVE 13 

Firenze 

• ATEMA - VIA BENEDETTO MARCELLO 1a- 

ib 

• ELETTRONICA CENTOSTELLE • VIA CENTO 
STELLE 5/a-b 

• HELP COMPUTER - VIA DEGLI ARTISTI 
15-A 

•TELEINFORMATICA TOSCANA -VIA BRONZI- 
NO 36 

Provincia (fi Firenze 

• WAR GAMES • VIA R SANZIO 126/A - 
EMPOLI 

• NEW EVM COMPUTER - VIA DEGLI INNO- 
CENTI 2 - FIGLINE VALOARNO 

• Ciro INFOR. - VIA ZNOJMO 41 - PON- 
TASS1EVE 

• COSCI FUI - VIA POMA 26 - PRATO 

• BARBAGLI C ELET - VIA F BONI e0 - 
PRATO 

Groaaelo 

• COMPUTER SERVICE • VIA DELL'UNIONE 
7 

Livorno 

• ETÀ BETA - VIA SAN FRANCESCO 30 

• FUTURA 2 - VIA CAMBJNI 19 

Provincia di Livorno 

• PUNTO ROSSO - VIA BARONTINI 28 - 
PIOMBINO 

Provincia di Lucca 

• IL COMPUTER • V LE COLOMBO 216 - LIDO 
DI CAMAIORE 

• SANTI VITTORIO • VIA ROMA 23 - S ROMA- 
NO GARFAGNANA 

• TOP GAMES - VIA S. ANDREA 122 - 
VIAREGGIO 

Massa 

• EURO COMPUTER - P-ZZA G. BERTAGNINI 

4 

Carrara 

• RADIO LUCONI - VIA ROMA 24/B 

Pisa 

• ELECTRONIC SERVICE - VIA DELLA VEC- 
CHIA TRANVIA 10 

• PUCCINI S-- CP 1199 (RAG-SOC. MAREX) - 
VIA C.CAMMEO 64 

• TONY HI-FI - VIA CAROUCCI 

Provincia (fi Pisa 

• M C. INFORMATICA • VIA DEL CHIESTO 4 - 
PONTEDÉRA (Pl> 

Pistoia 

• ELECTRONIC SHOP - VIA DEGLI SCALZI 3 

Provincia di Pistoia 

• ZANNI 4C - C.SO ROMA 45 - MON- 
TECATINI T. 

Siena 

• R. 0ROGI - P.ZZA GRAMSCI 28 

• VIDEO MOVIE - VIA GARIBALDI 17 

Provincia di Siena 

• ELETTRONICA ci BIFOLCHI - VIA D> GRAC- 
CIANO NEL CORSO 111 - MONTEPULCIANO 


LAZIO 

• CENTRO INF. - DR.R srt - TEL 06- 
5565672 

UMBRIA 

Perugia 

• MIGLIORATI - VIA S ERCOLANO 3-10 

Provincia di Perugia 

• COMPUTER STUDIO S - VIA IV NOVEMBRE 
18/A - BASTIA UMBRA 

• WARE - VIA DEI CASCERI 31 - CITTA DI 
CASTELLO 

Terni 

• CGS SOFTWARE MOUSE - VIA DONiZETTI 
71 /A 

BASILICATA 

Matera 

• G SAUDIANO ELECTRONICS - VIA ROMA 
ang XX SETTEMBRE J 

PUGLIA 

Bari 

• ARTEL - VIA GUIDO D'ORSO 9 

• COMPUTER S ARTS - V LE MEUCCl 12/8 

• PAULICELU S. 4 F • VIA FANELLI 231/C 

Provincia di Bari 

• F FAGGELLA - CSO GARIBALDI 15 • 
barletta 

• G FAGGELLA - P ZZA D ARAGONA 62A - 
BARLETTA 

• LONUZZO G • VIA NIZZA 21 • CASTELLANA 

• TECNOUFF - VIA RlCASOU 54 - MONOPOLI 

• TANGORRA N - C SO V EMANUELE 130/B 

- TRIGGIANO 
Brindisi 

• MARANGl E NICCOLI • VIA PROV SAN 
VITO 165 

Provincia di Bnndtsi 

• MILONE G. - VIA S.F. D ASSISI 219 - FRAN- 
CARLA FONTANA 

Foggia 

• BOTTICELLI G. - VIA SAV POLLICE 2 

• E C I COMPUTER • VIA ISONZO 28 

• LA TORRE - V LE MICHELANGELO 185 

Provincia di Foggia 

• IL DISCOBOLO - VIA T. SOtlS 15 - SAN 
SEVERO 

Lecce 

• BIT - VIA 95 REGG.NTO FANTERIA 87/89 

Provincia di Lecce 

• TECNO UFFICIO - P ZZA GIOVANNI XXIII 
10 - GALLIPOLI 

• CEOOK INFORMATICA - VIA UMBERTO 1 116 

- TRICASE 

Taranto 

• ELETTROJOLLY Ciro - VIA DE CESARE 13 

• TEA - TEC. ELET AV. - VIA R ELENA 101 

CAMPANIA 
Provincia di Avallino 

• FLIP FLOP - VIA APPlA 68 - ATRIPALDA 

Benevento 

• E CO. INF - VIA PEPICELLl 21/25 

Caserta 

• ENTRY POINT - VIA COLOMBO 31 

• O P C - VIA G M BOSCO 24 

Provincia di Caserta 

• MP COMPUTER - VIA NAPOLI 30 • 
MAODALONI 

• DAMIANO - C SO V. EMANUELE 23 -ORTA 
DI ATELLA 

• FUSCO 8 - VIA NAPOLI 24 - VAiRANO PA- 
TERNORA (FRAZ VAIRANO SCALO) 

• LINEA CONTABILE - VIA OSPEDALE 72/76 - 

SESSA A (CE) . 

Napob 

• BABY TOYS - VIA CISTERNA DELL'OLIO 
5/BIS 

• CASA MUSICALE RUGGIERO - P.ZZA GAR|. 
BALDI 74 (INT. STAZ F.F. S S.) 

• C tro ELET CAMPANO ■ VIA EPOMEO 121 


• CLAN - GALLERIA VANVITEILI 32 

• CINE NAPOLI - VIA S. LUCIA 93/95 

• DARVIN - CALATA SAN MARCO 26 

• GIANCAR 2 - P.ZZA GARIBALDI 37 

• ODORINO - L.GO LALA 22 A-B 

• R 2 - VIA F. CILEA 285 

• SAGMAR - VIA S. LUCIA 140 

• TOP VIDEO - TOP COMPUTER - VIA S. ANNA 
DEI LOMBARDI 12 

• VIDEOFOTOMARKET - VIA S. BRIGIDA 19 

Provincia di Napoli 

• ELECTRONIC OAY • VIA DELLE PUGLIE 17 

- CASO RIA 

• TUFANO - S S SANNITICA 87 KM 7 - 
CASORIA 

• SOF SUO - V.LE EUROPA 59 - CASTEL/MARE 
DI STABIA 

• ELETTRONICA 2000 - C SO DURANTE 40 • 
FRATTAMAGGIORE 

• SPAOARO - VIA ROMANI 93 - MADONNA 
DELL'ARCO 

• GATEWAY - VIA NAPOLI 68 - MUGNANO 

• VISPINI 4 DI VUOLO - VIA A ROSSI 4 - 
POMPEI 

• SPY CASH 4 CARRY - P.ZZA ARENELLA 6/A - 
NAPOLI 

• NUOVA INFORMATICA SHOP - VIA LIBERTA' 
185/191 PORTICI 

• BASIC COMPUTER - C.SO GARIBALDI 34 - 
POZZUOLI 

• V.C - C.SO SECONOIGLIANO 562/B • 
SECONDtGLIANO 

• F. ELETTRONICA - VIA SARNO 102 - 
STRIANO 

• TECNO - VIA V. VENETO 48 . TORRE DEL 
GRECO 

Salerno 

• COMPUMARKET - VIA BELVEDERE 35 

• COMPUTER MARKET - C.SO VITTORIO EMA- 
NUELE 23 

Provincia (fi Salerno 

• KING COMPUTER - VIA OLEVANO 56 - 
BATTIPAGLIA 

• DIMER POINT - V.LE AMENDOLA 36 - 
E BOLI 

• iACUZIO F. - VIA MUNICIPIO 14 - MERCATO 
SAN SEVERINO 

• COMPUTER SERVICE - VIA L.DA VINCI 8< 

- SCAFATI 

CALABRIA 

Catanzaro 

• C. 4 G COMPUTER - VIA F ACRI 28 

• PAONE S. 4 F ■ VIA F ACRI 93/99 

Provincia di Catanzaro 

• COMPUTER HOUSE • VIA BOLOGNA (L.GO 
OSPEDALE) - CROTONE 

• RIOLO FILI ■ VIA VENEZIA 1/7 - CROTONE 

• INO. FUSTO S - C SO NICOTERA 99 - LAME- 
ZIA TERME 

Cosenza 

• MAISON DE L'INFORMATIQUE - VIA PA- 
SQUALE ROSSI 34/C 

• SIRANGELO COMP. - VIA N. PARlSlO 25 

Provincia di Coaerua 

• HI-FI ALFANO G. - VIA BALDACCHINI 109 

- AMANTIA 

• ELIGIO ANNICCHIARCO 4C. • VIA ROMA 
21 - CASTROV1LLARI 

• ALFA COMPUTER - VIA NAZIONALE 341 /A - 
CORIGUANO SCALO 

REGGIO CALABRIA 

• CONTROL SYSTEM - VIA S.F DA PAOLA 
49 0 

• SYSTEM H0U • VIA FIUME ang PAiESTWO 1 
Provincia di Reggio Calabria 

• COMPUTER SHOP - V LE MATTEOTTI 36/38 ' 
LOCRI 

• PICIEFFE - C.SO F. S. ALESSIO 19 - 
TAURI ANOVA 

SICILIA 

• CENTRO INF. - ITALSOFT SRL - TEL. 0935- 
696090 


Commodore Computer Club - 95 




A MAGGIO 


SPECIALE VOLO 

& PARAPENDIO